當前位置:首頁 » 編程軟體 » m及CVSD編解碼實驗心得

m及CVSD編解碼實驗心得

發布時間: 2022-07-08 04:02:01

Ⅰ matlab 從【a b c d e f g h i j k l m n o p q】中依次取6個字母。

摘要:先容了藍牙技術的系統結構及特色,並聯合TransiliCA公司生產的OnechIP藍牙產品TR0700單晶元,剖析了硬體實現模式。

要害詞:藍牙技術 硬體實現 鏈路管理與控制 跳頻

藍牙技術是一項新興的技術。它的重要目標是在全世界樹立一個短間隔的無線通信尺度。它應用2.4GHz~2.5GHz的ISM(Instrion Scientifc Medical)頻段來傳送話音和數據。應用成熟、適用、先進的無線技術來取代電纜,它提供了低本錢、低功耗的無線介面,使所有固定和移動設備通過微微網PAN(Personal Area Network)連接起來,諸如:盤算機體系、家庭影院系統、無繩電話體系、通信設備等,相互通訊,實現資源共享。藍牙技術支撐多種電子設備之間的短間隔無線通信,這種通信不須要任何線纜,亦不須要用戶直接手工干預;每當一個嵌進了藍牙技術的設備發覺另一同樣嵌入藍牙技術的裝備,它們就能主動同步,相互通訊,實現資源共享。

1 藍牙的結構系統

藍牙協議棧的系統結構如圖1所示。它是由底層硬體模塊,中間層和高端運用層三大部分組成。

1.1 藍牙的底層模塊

底層模塊是藍牙技巧的核心模塊,所有嵌入藍牙技術的設備都必需包含底層模塊。它主要由鏈路治理層LMP(Link Manager Protocol)、基帶層BB(Base Band)和射頻RF(Rodio Fraquency)組成。其功能是:無線連接層(RF)通過2.4GHz無需申請的ISM頻段,實現數據流的過濾和傳輸;它重要定義了工作在此頻段的藍牙接受機應滿足的需求;其帶層(BB)供給了兩種不同的物理鏈路(同步面向連接路SCO Synchronous Connection Oriented和非同步無銜接鏈路ACL Asynchronous Connection Less),負責跳頻和藍牙數據及信息幀的傳輸,且對所有類型的數據包提供了不同層次的前向糾錯碼FEC(Frequency Error Correction)或循環沉余度錯誤校驗CTC(Cyclic Rendancy Check);LMP層負責兩個或多個設備鏈路的樹立和拆除及鏈路的安全和把持,如鑒權和加密、控制和協商基帶包的大小等,它為上層軟體模塊提供了不同的拜訪進口;藍牙主機節制器介面HCI(Host Cntroller Interface)由基帶控制器、連接收理器、掌握和事件存放器等組成。它是藍牙協議中軟硬體之間的介面,提供了一個調用下層BB、LM、狀況和控制存放器等硬體的同一命令,上、下兩個模塊介面之間的新聞和數據的傳遞必需通過HCI的說明才幹進行。HCI層以上的協定軟體實體運行在主機上,而HCI以下的功效由藍牙裝備來完成,二者之間通過傳輸層進行交互。

1.2 中間協議層

中間協議層由邏輯鏈路控制與適配協議L2CAP(Logical Link Control and Adaptation Protocol)、服務發明協議SDP(Service Discovery Protocol)、串口模擬協議或稱線纜調換協議(RFCOM)和二進制電話控制協議TCS(Telephony Control protocol Spectocol)組成。L2CAP是藍牙協議棧的核心組成部分,也是其它協議實現的基本。它位於基帶之上,向上層提供面向連接和無連接的數據服務。它主要完成數據的拆裝、服務質量控制、協議的復用、分組的分割和重組(Segmentation And Reassembly)及組提取等功能。L2CAP容許高達64KB的數據分組。SDP是一個基於客戶/伺服器結構的協議。它工作在L2CAP層之上,為上層利用程序提供一種機制來發明可用的服務及其屬性,而服務屬性包含服務的類型及該服務所需的機制或協議信息。RFCOMM是一個模擬有線鏈路的無線數據模擬協議,符合ETSI尺度的TS 07.10串口模擬協議。它在藍牙基帶上模擬RS-232的控制和數據信號,為本來應用串列連接的上層業務提供傳送才能。TCS是一個基於ITU-T Q.931建議的採取面向比特的協議,它定義了用於藍牙設備之間樹立語音和數據呼叫的控制信令(Call Control Signalling),並負責處置藍廾設備組的移動管理進程。

1.3 高端利用層

高端應用層位於藍牙協議棧的最上部分。一個完全的藍牙協議棧按其功能又可劃分為四層:核心協議層(BB、LMP、LCAP、SDP)、線纜調換協議層(RFCOMM)、電話掌握協議層(TCS-BIN)、選用協定層(PPP、TCP、TP、UDP、OBEX、IrMC、WAP、WAE)。而高端利用層是由選用協議層組成。選用協議層中的PPP(Point-to-Point Protocol)是點到點協議,由封裝、鏈路節制協議、網路把持協議組成,定義了串列點到點鏈路應該如何傳輸網際網路協議數據,它要用於LAN接進、撥號網路及傳真等應用規范;TCP/IP(傳輸控制協議/網路層協議)、UDP(User Datagram Protocol對象交流協議)是三種已有的協議,它定義了網際網路與網路相乾的通信及其他類型盤算機設備和外圍設備之間的通信。藍牙採取或共享這些已有的協議往實現與銜接網際網路的設備通訊,這樣,既可進步效力,又可在必定水平上保證藍牙技術和其它通信技巧的互操作性;OBEX(Object Exchange Protocol)是對象交流協議,它支撐設備間的數據交換,採取客戶/伺服器模式提供與HTTP(超文本傳輸協議)雷同的基礎功效。該協議作為一個開放性尺度還定義了可用於交流的電子商務卡、個人日程表、新聞和便條等格局;WAP(Wireless Application Protocol)是無線應用協議,它的目標是要在數字蜂窩電話和其它小型無線裝備上實現網際網路業務。它支持行動電話閱讀網頁、收取電子郵件和其它基於網際網路的協議。WAE(Wireless Application Environment)是無線應用環境,它供給用於WAP電話和個人數字助理PDA所需的各種運用軟體。

2 藍牙硬體的實現

藍牙的技術規范除了包括協議部分外還包括藍牙的應用部分(即應用模型)。在實現藍牙的時候,一般是將藍牙分成兩部分來斟酌,其一是軟體實現部分,它位於HCI的上面,包括藍牙協議棧上層的L2CAP、RFCOMM、SDP和TCS以及藍牙的一些應用;其二是硬體實現部分,它位於HCI的下面,亦即上面提到的底層硬體模塊,它已在圖1中標示出。下面討論藍牙硬體模塊的結構與性能。

藍牙硬體模塊由藍牙協定棧的無線收發器(RF)、其帶節制器(BB)和鏈路治理層(LMP)組成。目前大多數生產廠家都是應用片上體系技巧SOC(System-On-Chip)將這三層功能模塊集嵌在同一塊晶元上。圖2為單晶元藍牙硬體模塊構造圖。它由微處置器(CPU)、無線收發器(RF)、基帶掌握器(BB)、靜態隨機存儲器(SRAM)、快閃記憶體(Flash程序存儲器)、通用非同步收發器(UAST)、通用串列介面(USB)、語音編/解碼器(CODEC)及藍牙測試模塊組成。下面分辨敘述各部分的組成及功能。

(1)藍牙基帶控制器

藍牙基帶控制器是藍牙硬體模塊的要害模塊。它主要由鏈路控制序列產生器、可編程程序列產生器、內部語音處理器、共享RAM裁器及定時鏈管理、加密/解密處理等功能單元組成。其主要功能:在微處理器模塊控制下,實現藍牙基帶部分的所實時處理功能,包括負責對吸收bit流進行符號定時提取的恢復;分組頭及凈荷的循環沉余度校驗(CRC);分組頭及凈荷的前向糾錯碼(FEC)處理和發送處理;加密和解密處理等。且能提供從基帶控制器到其它晶元的介面(諸如數據路徑RAM客戶介面、微處理器介面、脈碼調制介面(PCM)等。

(2)無線收發器模塊

無線收發器是藍牙設備的核心,任何藍牙設備都要有無線收發器。它與用於廣播的普通無線收發器的不同之處在於體積小、功率小(目前生產的藍牙無線收發器的最大輸出功率只有100mW、2.5mW、1mW三種)。它由鎖相環、發送模塊和接受模塊等組成。發送部分包含一個倍頻器,且直接使用壓控振盪器調制(VCO);吸收部分包括混頻器、中頻器放大器、鑒頻器以及低噪音放大器等。無線收發器的主要功能是調制/解調、幀定時恢復和跳頻功能同時完成發送和吸收操作。發送操作包括載波的發生、載波調制、功率控制及主動增益控制AGC;接收操作包括頻率調諧至准確的載波頻率及信號強度控制等。

(3)微處理器(CPU)

CPU負責藍牙比特流調制和解調所的所有比特級處置,且還負責把持收發器和專用的語言編碼和解碼器。

(4)Flash存儲器和SRAM

Flash存儲器用於寄存基帶和鏈路治理層中的所有軟體部分。SRAM作為CPU的運行空間,在作時把Flash中的軟體調用SRAM中。

(5)語音編/解碼器CODEC(Coder Decoder)

語音編/解碼器CODEC由ADC(數模轉換器)、模數轉換口(ADC)、數字介面、編碼模塊等組成。重要功效:供給語音編碼和解碼功能,提供CVSD(Continuous Variable Slope Delta Molation)即持續可變斜率增量調制及對數PCM(Pulse Coded Molation)即脈碼調制兩種編碼方法。

(6)藍牙測試模塊

它是由DUT(Device Under Test)即被測試模塊與測試設備及計量設備組成。一般測試 設備被測試設備構成一個微微網,測試設備是主節點,DUT是從節點。測試設備對全部測試進程進行控制,其主要功能提供無線層和基帶層的認證和一致性規范,同時還管理產品的生產和售後測試。

(7)UART(Universal Asynchronous Keceiver Transunitter)通用非同步收發器和USB(Universal Serial Bus)通用串列介面。

功能:提供到HCI(Host Confroller Interface)即主機控制器介面傳輸層的物理連接,是高層與物理模塊進行通信的通道。

3 TR0700單晶元先容

RT0700單晶元是Transilica公司的藍牙產品,其構造如圖3所示。它把無線收發器與基帶都集成到一塊CMOS晶元上,替換傳統的串列語音和通用串列介面電纜,為語音和數據業務提供無線銜接。

3.1 構造及工作原理

RT0700單晶元由收發器、基帶、語音編/解碼器(CODEC)、帶有4個可配置的8bit介面的8051微處理器、兩個串列口雙高性能的通用非同步收發器(UART)、4KB的靜態隨機存儲器(SRAM)、64KB的Flash程序存儲器等組成。

收發器由低噪放大器(LNA)、電平控制器(PA)、混頻器、鑒頻器、控制存放器、發送濾波器、振盪器等組成。其工作原理是:來自接受天線上的信號經低噪放大器(LNA)放大後,送至多級濾波器,多級濾波用具有預選擇功能,它把LAN的輸出信號限制在2.4GHz的ISM頻段內,往除負頻率成分,輸出合適進行下變頻處理的信號。I、Q混頻器把藍牙頻段的信號移頻至低中頻(IF)傳輸的調制信號。復合濾波器負責從下變頻信號中濾除無用信號和雜訊。鑒頻器使用過采樣技術從IF信號中取出藍牙低調制指數信號;發送器由發送濾波器、頻率合成器、功率放大器、振盪器、天線等組成。其工作原理是:發送濾波器是一個高斯數字濾波器,它對發送環Tx輸入的數據進行數字過濾;振盪器的功能是驅動一個外部的晶體振盪器或者接收一個外部的時鍾信號,向頻率合成器提供一個低雜訊的參考頻率。功率放大器的主要功能是對頻率合成器的輸出功率放大到1mW左右,且對頻率合成器起緩沖作用,減少負載變更對合成器的影響;發送天線:當應用差分輸入的LNA時,它可以是一個低雜訊的平衡雙極天線;8051微處理器是一個8位的微處理器,它的主要功能是管理和實現藍牙協議棧。它具有一加強的指令集、二級數據指針、擴大的SRAM和雙UART。在TR0700中對一些反復性的操作諸如分組的組裝和拆解、加密、地址編碼/解碼、糾錯和同步等都由硬體來實現,這樣能下降處理器的開銷,有效地進步響應性能。TR0700除了8051微處理器本身所帶有的一些特別功能寄存器(SFR)外,還定義了一些新的特別功能寄存器(SFR),它還引入了一些特別的中止,如一個帶有特殊維護的外部中止INT3等。RT0700的基帶操作有三種模式可供選擇:數據/地址、埠、測試。

3.2 基礎功能及應用

TR0700單晶元的基礎功能是:具有10m的傳輸間隔及1Mbps的數據速率;支持79跳系統及支撐點到點、點到多點連接,既可以是主節點又可以是從節點;支持GAP、TCS、手機、intercom剖面和串列口等;支持Hold、Sniff和Park功率節儉模式;對LC、LM、L2CAP、SDP、RECOMM等藍牙協議棧能完整實現;對於SCO鏈路支持HV1、HV2、HV3數據分組;對於ACL分組支持DM1、DM3、DM5、HD1、HD3、HD5和AUX1數據分組;具有用於測試和Flash內存升級的JTAG介面。TR0700單晶元的主要運用有:用於電信方面的峰房和無繩電話、數據機、手持設備、互聯設備、小型監督器;用於盤算機方面有鍵盤、滑鼠、控制桿、掃描儀、監督器、列印機、桌面、筆記本計算機等。用於花費類的PDA、耳機、監督系統、游戲控制器和數字相機等。

藍牙技術作為一個開放的無線應用標准,能通過無線連接方法將必定范疇內的固定或移動設備連接起來,使人們能夠更方面更快速地進行語音和數據的交換,這無疑將會成為未來無線通信范疇的一個主要的研討方向。本文所描寫的藍牙技術硬體實現模式剖析,只是藍牙核心技術中的一小部分,隨著藍牙技術的不斷完美與產品的勝利開發,可以確定,藍牙技術將會逐漸進入我們的工作和生涯,成為不可缺乏的一部分。

相關的主題文章:

藍牙廣告與傳統廣告的對比

全球500強資深講師 探討藍牙營銷的前景

藍牙廣告發展趨勢

Ⅱ 求助能夠實現LDPC編譯碼的c語言程序,急用,謝謝!

我回答你的問題啊!呵呵,你怎麼不給分啊????實驗命令:clc;clear all;
N=input('N=');%輸入信源符號的個數
s=0;l=0;H=0;
for i=1:N
fprintf('第%d個',i);
p(i)=input('p=');%輸入信源符號概率分布矢量,p(i)<1
if p(i)<=0
error('不符合概率分布')
end
s=s+p(i)
H=H+(- p(i)*log2(p(i)));%計算信源信息熵
end
if (s<=0.999999||s>=1.000001)
error('不符合概率分布')
end
tic;
for i=1:N-1 %按概率分布大小對信源排序
for j=i+1:N
if p(i)<p(j)
m=p(j);p(j)=p(i);p(i)=m;
end
end
end
x=f1(1,N,p,1);
for i=1:N %計算平均碼長
L(i)=length(find(x(i,:)));
l=l+p(i)*L(i);
end
n=H/l; %計算編碼效率
fprintf('按概率降序排列的碼字:\n');
disp(x) %顯示按概率降序排列的碼字
fprintf('平均碼長:\n');
disp(l)% 顯示平均碼長
fprintf('信源信息熵:\n');
disp(H)%顯示信源信息熵
fprintf('編碼效率:\n');
disp(n) %顯示編碼效率
fprintf('計算耗時time= %f\n',toc);
再建立兩個M文件:%函數f1存放於f1.m
function x=f1(i,j,p,r)
global x;
x=char(x);
if(j<=i)
return;
else
q=0;
for t=i:j %對於區間[i,j]自上而下求累加概率值
q=p(t)+q;y(t)=q;
end
for t=i:j%把所有自上而下的累加概率值與該區間總概率值減該累加概率值之差取絕對值存在一數組
v(t)=abs(y(t)-(q-y(t)));
end
for t=i:j
if(v(t)==min(v)) %求該數組中最小的一個值來確定分界點位置
for k=i:t %賦值碼字
x(k,r)='0';
end
for k=(t+1):j
x(k,r)='1';
end
d=t;
f1(i,d,p,r+1); %遞歸調用及相互調用
f2(d+1,j,p,r+1);
f1(d+1,j,p,r+1);
f2(i,d,p,r+1);
else
end
end
end
return;第二個:%函數f2存放於f2.m
function x=f2(i,j,p,r)
global x;
x=char(x);
if(j<=i)
return;
else
q=0;
for t=i:j %對於區間[i,j]自上而下求累加概率值
q=p(t)+q;y(t-i+1)=q;
end
for t=1:j-(i-1)%把所有自上而下的累加概率值與該區間總概率值減該累加概率值之差取絕對值存在一數組
v(t)=abs(y(t)-(q-y(t)));
end
for t=1:j-(i-1)
if(v(t)==min(v)) %求該數組中最小的一個值來確定分界點位置
d=t+i-1;
for k=i:d %賦值碼字
x(k,r)='0';
end
for k=(d+1):j
x(k,r)='1';
end
f2(d+1,j,p,r+1);%遞歸調用及相互調用
f1(i,d,p,r+1);
f2(i,d,p,r+1);
f1(d+1,j,p,r+1);
else
end
end
end
return;

Ⅲ 哈夫曼樹及哈夫曼編碼解碼的實現(根據程序畫流程圖及對每句程序注釋)

這是以前寫的,可是我不想加註釋了,Huffman編碼其實原理很簡單的,你自己好好學下吧,一句一句注釋也太誇張了啊。

#include<string.h>
#include<stdlib.h>
#include<stdio.h>

int m,s1,s2;

typedef struct {
unsigned int weight;
unsigned int parent,lchild,rchild;
}HTNode,*HuffmanTree;

typedef char ** HuffmanCode;

void Select(HuffmanTree HT,int n)
{
int i,j;
for(i=1;i<=n;i++)
if(HT[i].parent==0)
{s1=i;
break;
}
for(j=i+1;j<=n;j++)
if(HT[j].parent==0)
{
s2=j;
break;
}
for(i=1;i<=n;i++)
{
if(HT[i].parent==0)
if(HT[s1].weight>HT[i].weight)
if(s2!=i)
s1=i;
}
for(j=1;j<=n;j++)
{
if(HT[j].parent==0)
if(HT[s2].weight>HT[j].weight)
if(s1!=j)
s2=j;
}
if(s1>s2)
{
int temp=s1;
s1=s2;
s2=temp;
}
}

void HuffmanCoding(HuffmanTree &HT, HuffmanCode &HC, int *w, int n)
{
int i,j;
char *cd;
int p;
int cdlen;
if (n<=1) return;
m = 2 * n - 1;
HT = (HuffmanTree)malloc((m+1) * sizeof(HTNode));
for (i=1; i<=n; i++)
{
HT[i].weight=w[i-1];
HT[i].parent=0;
HT[i].lchild=0;
HT[i].rchild=0;
}
for (i=n+1; i<=m; i++)
{
HT[i].weight=0;
HT[i].parent=0;
HT[i].lchild=0;
HT[i].rchild=0;
}

//添加查看,便於調試
printf("構造過程顯示:\n");
for(i=1;i<=m;i++)
printf("%4d%4d%4d%4d%4d\n",i,HT[i].weight, HT[i].parent,HT[i].lchild, HT[i].rchild);
system("pause");

for(i=n+1;i<=m;i++)
{
Select(HT,i-1);
HT[s1].parent = i; HT[s2].parent = i;
HT[i].lchild = s1; HT[i].rchild = s2;
HT[i].weight = HT[s1].weight + HT[s2].weight;
//添加查看,便於調試
/*printf("s1=%d,s2=%d\n",s1,s2);
for(j=1;j<=i;j++)
printf("%d%4d%4d%4d",j,HT[j].weight,HT[j].parent,HT[j].lchild, HT[j].rchild);
system("pause");
*/
}
cd = (char *)malloc(n*sizeof(char));
p=m;
cdlen=0;
for(i=1;i<=m;i++)
HT[i].weight=0;
while(p)
{
if(HT[p].weight==0)
{
HT[p].weight=1;
if(HT[p].lchild!=0)
{
p=HT[p].lchild;
cd[cdlen++]='0';
}
else if(HT[p].rchild==0)
{
HC[p]=(char *)malloc((cdlen+1)*sizeof(char));
cd[cdlen]='\0';
strcpy(HC[p],cd);
}
}
else if(HT[p].weight==1)
{
HT[p].weight=2;
if(HT[p].rchild!=0)
{
p=HT[p].rchild;
cd[cdlen++]='1';
}
}
else
{
HT[p].weight=0;
p=HT[p].parent;
--cdlen;
}
}

}

int main()
{
HuffmanTree HT;
HuffmanCode HC;
int *w,n,i;
printf("請輸入節點數:\n");
scanf("%d",&n);
HC = (HuffmanCode)malloc(n*sizeof(HuffmanCode));
w=(int *)malloc(n*sizeof(int));
printf("請輸入節點的權值:\n");
for(i=0;i<n;i++)
scanf("%d",&w[i]);
HuffmanCoding(HT,HC,w,n);
printf("輸出編碼:\n");
for(i=1;i<=n;i++)
printf("%2d(%4d):%s\n",i,w[i-1],HC[i]);
return 0;
system("pause");
}

Ⅳ 我想知道AMD和Inter那個處理器好具體有什麼區別嗎

單一的比較很難說,就總體性能來說,AMD就象大卡車,開的不是太快,但也不慢,載的東西多,如果你要運行很多的東西就選AMD。INTER,佔世界70%的份額,種類多,INTER就象豪華的跑車,速度快,但載的東西少一些,不過,足夠你個人用戶使用的!下面是我對他們的比較,你參考一下:
我並不想具體在細節上對早期的Athlon和Duron處理器進行比較,因為他們在屬於他們的那個時代都曾進輝煌過。但是就現在而言,他們的確已經過時了,如果有讀者想要對他們進行細節了解,我們在下面的測試中對他們進行了粗略的測定。

早期的以Pluto及Orion為核心的,採用Slot A架構的Athlon處理器擁有L2緩存,緩存的大小是主頻的1/2,2/5或者1/3——主頻越快,比率越低。例如主頻為700MHz的Athlon處理器的L2緩存為350MHz,而主頻為750MHz的Athlon處理器的L2緩存則為300MHz,主頻更高的850MHz的Athlon處理器的L2緩存更低,為340MHz。一般來說,當時在Athlon處理器與Pentium III處理器的評測中,雙方不相上下,兩款處理器在不同的測試項目中都有自己的優勢。Athlon處理器的x87浮點性能更好,而Pentium III處理器則在最優化應用軟體MMX和SSE的測試中,成績超過Athlon處理器。

架構在socket A下的處理器在L2緩存技術方面有所進步。AMD處理器的性能在當時的一段時間內要超過英特爾處理器產品的性能。Athlon Thunderbird的緩存達到了1.4GHz,而Pentium III曾經試圖達到1.13GHz但最終以失敗告終,後來的Pentium III Tualatin達到了1.4GHz的水平,但這是在英特爾推出了Pentium 4處理器後才得以實現的。因此當時AMD是眾多游戲玩家的至愛。
Athlon XP處理器更改了Athlon處理器的某些架構,以獲得更好的性能。由於Athlon XP處理器的推出是為了與英特爾的Pentium 4處理器相抗衡,因此AMD推出了一些新的型號並且提出了「主頻不是一切」的處理器性能理念。AMD公司聲稱Athlon XP處理器的性能相當於Thunderbird核心,但是很少有人相信這種說法,更多人認為這只是一種商業說法,由於英特爾公司新推出的處理器在主頻方面有了顯著的提高,而Athlon核心根本趕不上英特爾的腳步,因此「主頻不是一切」的理念被提了出來。

隨著處理器大戰的延續,兩家公司不斷推出新的產品。Thoroughbred核心是一款高工作頻率核心,但是並沒有達到其設計的初衷。因此Thoroughbred B核心誕生了,它使得處理器的工作頻率略有提高,達到了2250MHz。值得一提的是Thoroughbred B核心在冷卻條件合適的時候可以超頻到2.3GHz到2.4GHz,但是相比而言Thoroughbred核心的工作頻率則被限制在了2.1GHz到2.2GHz之間。

Thoroughbred之後,AMD推出的Barton核心在緩存技術方面又有所突破。由於緩存的增加可以提高處理器的工作性能,因此AMD重新調整了其處理器型號。而此時英特爾公司的處理器產品在緩存以及主線頻率方面都有所提高,但是公司並沒有調整處理器型號。AMD推出2500+,2600+以及2800+以追趕英特爾公司的腳步,但是事實上是英特爾推出前端匯流排頻率為800MHz,主頻為200MHz的「C」系列Pentium 4處理器後,AMD新推出的前端匯流排頻率為200MHz的Athlon XP 3200+的性能只相當於P4 2.8C。一般的消費者會簡單的認為3200+的性能與3.2C不相上下,但是實際情況並非如此。關於AMD的移動處理器實在沒有什麼可以多介紹的,與其台式機處理器相比,移動處理器只是在減少主頻的情況下減少了電能的消耗,因此移動處理器工作在低電壓狀態。AMD移動Athlon XP處理器由於其在超頻性能上表現良好因而收到廣泛的推崇。就Athlon 64處理器而言,它的命名是由於其64位地址和整數位。但是Athlon 64處理器的核心並非Athlon處理器核心的升級版本。它仍然保持了10/15級管線。擁有了x86-64的支持,的確是一個很成功的商業行為同時也吸引了不少消費者的眼球。但由於64位還沒有成為現在市場的主流,因此它多少還是顯得英雄無用武之地。但是隨著Windows XP-64的問世,相信它在不久的將來一定會物盡其才。

Athlon 64處理器性能上的優勢主要依靠於可以很好的減小延遲的整合內存控制器。它可以幫助內存在很大的情況下仍然保持L3緩存很小,同樣可以在內存頻率升高的同時減少內存延遲。Athlon 64 3200+處理器的內存延遲為81ns,P4 3.2C處理器的內存延遲為77ns。同時,Athlon 64 3400+處理器的內存延遲達到了48ns。
老的Pentium Pro P6架構擁有12級管線,它擁有三個專門的位址產生單元,兩個算術邏輯單元——一個用來解決簡單的計算,另外一個單元用來解決復雜的計算,以及一個浮點單元。其中浮點單元擁有CPU指令集,SEE(AMD直到Athlon XP處理器之前的產品均不具備這項支持)和MMX的支持。由於有了這些,使得他們在技術上領先於AMD的產品。

由於使用了Tualatin核心,使得Athlon處理器的主頻可以輕松超至1.4GHz。實際上,後來的Celeron 1.0A以及Celeron 1.4A處理器在超頻方面表現的也相當不錯。匯流排頻率為133MHz的Celeron 1.1A處理器更是表現出了良好的全面性能。由於市場的需要,英特爾公司在後來的日子裡停產了這幾款性能優越的處理器,轉而開發了主頻更高的Pentium 4和NetBurst處理器。
NetBurst架構擁有20級管線,從而大大加強了數據處理能力。為了減少核心引入指令以及編解碼的時間,英特爾公司推出了一種新的緩存,名叫trace緩存。它被證明可以有效的提高處理器數據處理效率。在NetBurst架構下的P4處理器的邏輯演算法單元以核心頻率的兩倍速度運行,並能以一半核心時鍾周期執行部分指令,整數指令則以其於速度的兩倍執行。

而其後的Prescott架構則在NetBurst架構的基礎上加了3級管線,達到了23級管線。除此之外,Prescott架構的L2緩存是Northwood架構的兩倍,還加入了SSE3的支持,架構在Prescott下的64位至強處理器系列現在已經開始發售。據推斷在XP-64面世以後,英特爾公司也將推出相應的64位台式機處理器。

英特爾近兩年來全力推展同步多執行緒技術,公司稱其為超線程技術。英特爾直到P4 3.06處理器後才將這項技術植入後續處理器中。後來的至強平台,800MHz前端匯流排頻率的所有"C"處理器均擁有超線程技術的支持。超線程技術就是利用特殊的硬體指令,把兩個邏輯內核模擬成兩個物理晶元,讓單個處理器都能使用線程級並行計算。從而兼容多線程操作系統和軟體,提高處理器的性能。在一個程序出錯的同時,另一個程序仍然可以運行,這樣就可以使得運行性能提高20%到50%。「超線程」技術可以使晶元同時進行多線程處理,使晶元性能得到提升。

現在讓我們來看看socket 775 LGA架構,英特爾同樣在這種架構下推出了多款處理器。通常而言,編號數字大的產品說明產品的性能越好,但是我們看到這樣一個現象,5xx針腳處理器的性能要高於7xx針腳處理器,而某些3xx針腳處理器則要比他們的後輩性能優越。所有5xx針腳處理器使用的均是Prescott核心,擁有800MHz前端匯流排頻率以及1MB大小的L2緩存。其他產品的具體情況讀者可以在下表中找到。這樣你就會明白為什麼會出現產品編號數字大的處理器在性能上反而不敵編號數字小的處理器產品的原因了。
在Pentium 4處理器的基礎上,加以主頻的限制,變造就了非常適合於筆記本使用的英特爾移動處理器。主頻越高意味著需要的能量就越大,對於筆記本而言就也就意味著需要增強電池的使用時間。面對來自Transmeta的壓力,英特爾推出了集高性能與低耗電於一體的Israel核心處理器。而最終產品就是目前筆記本電腦的主流處理器Pentium M。Pentium M處理器在能量消耗方面表現極為優秀,英特爾公司為了維持其在移動處理器市場的龍頭地位,將Pentium M處理器架構在P6之上。

P6架構的改進之處在於其增大了L2緩存,這使得大部分緩存可以處在低能量「睡眠」模式中。P6架構的L1緩存仍為PIII的兩倍,達到了64k。浮點性能由於MMX/SSE單元的倍增而得以增強,構架在其他方面也都略有改動。總體來說,Pentium M移動處理器的性能相當於同主頻的Athlon處理器,但是耗電則要略低。運用Pentium M移動處理器的筆記本電池要比運用Pentium 4處理器,移動Celeron或者移動Athlon XP的筆記本電池在使用時間上提高25%到50%。

Itanium處理器是目前最不被廣大消費者了解的處理器產品。即便是最便宜的型號,其售價也超過了$1000。這並不值得奇怪,因為英特爾公司當時推出這類處理器時便將目標瞄向了高端團體市場。Itanium處理器被用來處理大量的並行進程,它還可以在512路SMP系統中工作,當然,這不能全面的解釋Itanium這款高端處理器。

最初,英特爾公司將Itanium處理器作為64位處理器,並且將它架構在了一個新的IA-64結構下。IA-64架構與x86架構相似,是一款面向未來的架構體系。實際上,它的競爭對手並非至強或是Opteron處理器,Itanium的問世是英特爾公司為了佔領高端64位處理器市場而推出的。它真正的競爭對手是基於IBM Power4/5, HP PA-RISC, Sun UltraSparc-III以及DEC Alpha的伺服器。

就處理器結構設計而言,英特爾使用了一種在以前的大型機上運用的技術,超長指令字(VLIW)。這是一種非常長的指令組合,它把許多條指令連在一起,增加了處理器運算的速度。但是Itanium並非嚴格意義上的超長指令字處理器,這是由於超長指令字有其自身比較明顯的弱點,而英特爾改進了這些弱點,並重新命名,稱之為精確並行指令(EPIC)。與至強和Opteron處理器相比,Itanium處理器可以同時最多執行3條指令。Itanium 2處理器則可以在一個周期內執行8條指令。就性能而言,主頻為1GHz的Itanium處理器相當於主頻為2.66GHz的至強或者Opteron處理器,而主頻為1.5GHz的Itanium 2處理器的性能則相當於4GHz的至強或者Opteron處理器。

為了達到最佳性能,Itanium處理器使用了128位四泵匯流排,使用標准SDRAM內存。最初的Merced版Itanium處理器擁有四個算術邏輯運算器單元,兩個浮點單元以及三個分支處理單元,兩個SIMD單元(例如MMX/SSE)和兩個地址產成單元。而後的改進版McKinley Itanium處理器則擁有六個算術邏輯運算器單元,三個分支處理單元,兩個浮點單元以及SIMD單元,兩個讀取單元,兩個存儲單元和四個地址產成單元。除此之外,McKinley版本的緩存帶寬是Merced版本的三倍。

Ⅳ cvsd編碼解碼原理

語法規則及函數模塊如下所示:
int do_stat()
{
int es=0;
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
es=statement();
if (es>0) return(es);
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
if(strcmp(token,"while")==0)
{
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
if(strcmp(token,"(")) return(es=5);
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
es=expression();
if(es>0) return(es);
if(strcmp(token,")")) return(es=6);
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
}
else es=3;
return(es);
}
//<聲明語句> ::=int <變數>|<變數>;
//<declaration_stat>::=int ID,{ID};
int declaration_stat()
{
int es=0;
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
if (strcmp(token,"ID")) return(es=3); //不是標識符
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
while(strcmp(token,",")==0 )
{
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
if (strcmp(token,"ID")) return(es=3); //不是標識符
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
};
if (strcmp(token,";") ) return(es=4);
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
return(es);
}
//<程序>::={<聲明序列><語句序列>}
//program::={<declaration_list><statement_list>}
int program()
{
int es=0;
fscanf(fp,"%s %s\n",token,token1);
printf("%s %s\n",token,token1);
if(strcmp(token,"main")==0)
{
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
if (strcmp(token,"(")) return(es=5); //少左括弧
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
if (strcmp(token,")")) return(es=6); //少右括弧
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
}
else
{
es=8;
return(es);
}
if(strcmp(token,"{"))//判斷是否'{'
{
es=1;
return(es);
}
fscanf(fp,"%s %s\n",&token,&token1);
printf("%s %s\n",token,token1);
es=declaration_list();
if (es>0) return(es);
es=statement_list();
if (es>0) return(es);
if(strcmp(token,"}"))//判斷是否'}'
{
es=2;
return(es);
}
return(es);
}
輸入如下:
main()
{int a,b,c;
read a;
read b;
c=0;
do{
c=a*b;
b=b+1;
a=a-1;
}while(b<=20)
write c;
}
輸出結果如下:
請輸入源程序文件名(包括路徑):main.txt
詞法分析成功!
main main
( (
) )
{ {
int int
ID a
, ,
ID b
, ,
ID c
; ;
read read
ID a
; ;
read read
ID b
; ;
ID c
= =
NUM 0
; ;
do do
{ {
ID c
= =
ID a
* *
ID b
; ;
ID b
= =
ID b
+ +
NUM 1
; ;
ID a
= =
ID a
- -
NUM 1
; ;
} }
while while
( (
ID b
<= <=
ID b
<= <=
NUM 20
) )
write write
ID c
; ;
ID c
; ;
} }
=====語法分析結果!======
語法分析成功!
程序分析成功!!!

Ⅵ 什麼是cvsd

CVSD:連續可變斜率增量調制。

ΔM的量化信噪比與抽樣頻率成三次方關系,即抽樣頻率每提高一倍則量化信噪比提高9dB。通常ΔM的抽樣頻率至少16KHz以上才能使量化信噪比達到15dB以上。32KHz時,量化信噪比約為26dB左右,可以用於一般的通信質量要求。如果設信道可用的最小信噪比為15dB,則信號的動態范圍僅有11dB,遠遠不能滿足高質量通信要求的35-50dB的動態范圍,除非抽樣頻率提高到100KHz以上採用實用價值。上述理論分析的結論讀者可以通過改變模擬實驗的信號抽樣頻率觀察到。當抽樣頻率低於16KHz時,信號失真已十分明顯,當抽樣頻率為128KHz時失真較小。
改進ΔM動態范圍的方法有很多,其基本原理是採用自適應方法使量階Δ的大小隨輸入信號的統計特性變化而跟蹤變化。如量階能隨信號瞬時壓擴,則稱為瞬時壓擴ΔM,記作ADM。若量階Δ隨音節時間間隔(5一20ms)中信號平均斜率變化,則稱為連續可變斜率增量調制,記作CVSD。由於這種方法中信號斜率是根據碼流中連「1」或連「0」的個數來檢測的,所以又稱為數字檢測、音節壓擴的自適應增量調制,簡稱數字壓擴增量調制。圖9.20給出了數字壓擴增量調制的方框圖。

Ⅶ 用費諾編碼實現信源編解碼

我回答你的問題啊!呵呵,你怎麼不給分啊????實驗命令:clc;clear all;
N=input('N=');%輸入信源符號的個數
s=0;l=0;H=0;
for i=1:N
fprintf('第%d個',i);
p(i)=input('p=');%輸入信源符號概率分布矢量,p(i)<1
if p(i)<=0
error('不符合概率分布')
end
s=s+p(i)
H=H+(- p(i)*log2(p(i)));%計算信源信息熵
end
if (s<=0.999999||s>=1.000001)
error('不符合概率分布')
end
tic;
for i=1:N-1 %按概率分布大小對信源排序
for j=i+1:N
if p(i)<p(j)
m=p(j);p(j)=p(i);p(i)=m;
end
end
end
x=f1(1,N,p,1);
for i=1:N %計算平均碼長
L(i)=length(find(x(i,:)));
l=l+p(i)*L(i);
end
n=H/l; %計算編碼效率
fprintf('按概率降序排列的碼字:\n');
disp(x) %顯示按概率降序排列的碼字
fprintf('平均碼長:\n');
disp(l)% 顯示平均碼長
fprintf('信源信息熵:\n');
disp(H)%顯示信源信息熵
fprintf('編碼效率:\n');
disp(n) %顯示編碼效率
fprintf('計算耗時time= %f\n',toc);
再建立兩個M文件:%函數f1存放於f1.m
function x=f1(i,j,p,r)
global x;
x=char(x);
if(j<=i)
return;
else
q=0;
for t=i:j %對於區間[i,j]自上而下求累加概率值
q=p(t)+q;y(t)=q;
end
for t=i:j%把所有自上而下的累加概率值與該區間總概率值減該累加概率值之差取絕對值存在一數組
v(t)=abs(y(t)-(q-y(t)));
end
for t=i:j
if(v(t)==min(v)) %求該數組中最小的一個值來確定分界點位置
for k=i:t %賦值碼字
x(k,r)='0';
end
for k=(t+1):j
x(k,r)='1';
end
d=t;
f1(i,d,p,r+1); %遞歸調用及相互調用
f2(d+1,j,p,r+1);
f1(d+1,j,p,r+1);
f2(i,d,p,r+1);
else
end
end
end
return;第二個:%函數f2存放於f2.m
function x=f2(i,j,p,r)
global x;
x=char(x);
if(j<=i)
return;
else
q=0;
for t=i:j %對於區間[i,j]自上而下求累加概率值
q=p(t)+q;y(t-i+1)=q;
end
for t=1:j-(i-1)%把所有自上而下的累加概率值與該區間總概率值減該累加概率值之差取絕對值存在一數組
v(t)=abs(y(t)-(q-y(t)));
end
for t=1:j-(i-1)
if(v(t)==min(v)) %求該數組中最小的一個值來確定分界點位置
d=t+i-1;
for k=i:d %賦值碼字
x(k,r)='0';
end
for k=(d+1):j
x(k,r)='1';
end
f2(d+1,j,p,r+1);%遞歸調用及相互調用
f1(i,d,p,r+1);
f2(i,d,p,r+1);
f1(d+1,j,p,r+1);
else
end
end
end
return;

Ⅷ CVSD如何從輸出編碼數據中反映出信號斜率的大小

MX639晶元介紹:
CMX639是美國國家半導體公司推出的斜率連續可變增量(CVSD)全雙工音頻調制晶元。

CMX639完全集成了語音編碼和解碼功能,實現了單晶元語音處理的能力,外圍設備簡單,而且用戶可以通過其管腳方便地對其編解碼演算法進行設置,並且具有強大的可選擇編碼演算法,低功耗、低價位、小體積和開發難度低等多種優點,因此特別適合在對成本非常敏感的消費類語音系統中應用。

VDD:3.0V~5.0V供電電壓。
ENCODER INPUT(7): 模擬語音信號的輸入管腳。
ENCODER OUTPUT(4):語音編碼後的輸出管腳,將輸入的模擬信號編碼成為串列數據。
DECODER INPUT(11):用於解碼的串列數據的輸入管腳
DECODER OUTPUT(9):解碼後的模擬語音信號輸出管腳。
DATA ENABLE(5):數據使能端,當DATA ENABLE管腳處於高電平狀態時,ENCODER OUTPUT才輸出編碼信號;否則,ENCODER OUTPUT管腳處於高阻狀態。

AGRITHM(13):演算法選擇管腳,由外部輸入來決定壓縮編碼地演算法是採用3 bit或4 bit演算法。

(10):功率節省管腳。當不需要進行語音編解碼時,將POWERSAVE管腳置低電平,晶元處於低功耗的待機狀態。

CLOCK MODE1(15),CLOCK MODE2(14),ENCODER DATA CLOCK(3)和DECODER DATA CLOCK(12):其管腳功能見下表。

由上表可知,CMX639采樣速率完全取決於振盪器的頻率和所設置的時鍾模式。用戶可以依據實際情況,自主選擇采樣速率,在語音質量和編碼數據碼率之間進行權衡,而且在振盪器的頻率固定的情況下,還可以利用外部埠改變采樣速率,因此賦予用戶開發極大的自主權。

② 美國模擬器件公司(ANALOG DEVICES, INC.,ADI):
單晶元JPE2000編解碼器ADV202與PULSE~LINK公司的連續波(CWAVE)UWB技術相結合,極大地降低了無線傳輸信道中產生的誤差對視頻質量的影響,即使在雜訊環境中也能產生良好的圖像質量,可實現高質量、低等待時間的無線HD娛樂應用和家庭中的高質量、低成本的無線HD或SD(標准清晰度)視頻傳輸。

熱點內容
怎麼解壓qq文件 發布:2025-02-09 09:18:14 瀏覽:580
安卓最新怎麼調靈敏度更穩 發布:2025-02-09 09:12:44 瀏覽:399
豌豆莢如何用安卓手機下載 發布:2025-02-09 09:11:57 瀏覽:212
吃雞腳本輔助 發布:2025-02-09 09:09:29 瀏覽:5
sessionidpython 發布:2025-02-09 09:08:53 瀏覽:275
華為手機驗證碼和密碼忘了是多少 發布:2025-02-09 08:53:53 瀏覽:798
逆戰筆記哪個配置好玩 發布:2025-02-09 08:53:04 瀏覽:599
怎麼打開電腦雲伺服器 發布:2025-02-09 08:36:01 瀏覽:219
日元對人民幣演算法 發布:2025-02-09 08:35:52 瀏覽:39
安卓手機微信語音怎麼不能轉文 發布:2025-02-09 08:25:30 瀏覽:922