一、實驗型別
設計性實驗
二、 實驗目的
1.掌握均勻量化原理和非均勻量化原理,
2.掌握量化信噪比的基本概念,
3. 理解量化級數、量化方法與量化信噪比的關系,
三、實驗原理
1.均勻量化原理
設模擬信號的取值范圍是[a,b],量化電平數是M,那么均勻量化的量化間隔是:

量化取間的端點是:

若量化輸出電平取量化間隔的中點,則
, 
顯然,量化輸出電平和量化前的信號的抽樣值一般是不同的,即量化輸出電平有誤差,這個誤差稱謂量化噪聲(quantization noise),并用信號功率之比(簡稱為信號量噪比),衡量此誤差對信號的影響的大小,對給定的信號最大幅度,量化電平數越多,量化的噪聲越小,信號量噪比越高,
在均勻量化時,量化噪聲功率的平均值
可以用下面的式子表示:

式子中的
為模擬信號的抽樣值,即
,
為量化信號值,
為信號的抽樣值
的概率密度,
為求統計平均值,
為量化電平數,
信號
的平均功率可表示為:

若已知信號
的概率密度函式,則由公式可計算出平均信號量噪聲比,
計算時可用如下公式直接計算
,對于具有均勻概率密度的信號則有:
,
所以平均信號量噪比為: 
當輸入信號為 正弦信號 是,量化信噪比表示為:

在實際的應用中,對于給定的量化器的,量化電平數M和量化間隔都是給定的,所以,量化噪聲也是給定的,但是,信號的強度可能是隨時間變化的,像語音信號就是這樣子的,當信號小時,信號的量化信噪比也小,所以這種均勻量化器對于小輸入信號很不利,所以一般對小信號采用非均勻量化,
2.非均勻量化
為了克服均勻量化的缺點,實際中,往往采用非均勻量化,非均勻量化是根據信號的不同區間來確定量化間隔的,實作方法如圖1 所示,

圖1非均勻量化實作程序
A律對數壓縮特性具有如下的關系,在國際標準中取
=87.6,

式中,
為歸一化的壓縮器輸入電壓,
為歸一化壓縮器輸出電壓,
為壓擴引數,表示壓縮程度,
13折線特性就是近似于
=87.6時的
律壓縮特性,
律壓縮特性的非均勻量化信噪比:

其中
為信噪比改善度,


其中
為信號有效值,
補充: 1.求對數的函式
log(x):求x的自然對數,即ln(x),
log2(x):求x的以2為底的對數,即log 2 (x),
log10(x):求x的以10為底的對數,即lg(x),
2.在樣值數較多時,量化噪聲平均功率和信號功率時,可通過用mean函式求均方值來計算:
,所用函式 mean(e.^2);
: mean(s.^2)
三、 例子演示仿真步驟
1、均勻量化
例【1】(1)產生一個周期的正弦波,以1000Hz頻率進行采樣,并進行8級均勻量化,用plot函式在同一張圖上繪出原信號和量化后的信號,

%均勻量化例1中(1)
clear all
fs=1000;
dt=1/fs;
M=8;
Am=1;
t=0:dt:1;
x=Am*cos(2*pi*t);
v=(max(x)-min(x))/M;
m(1)=min(x);
for i=1:M
m(i+1)=m(i)+v;
q(i)=(m(i)+m(i+1))/2;
end
for j=1:length(x)
for i=1:M-1
if(x(j)>=m(i)&x(j)<m(i+1))
lh(j)=q(i);
end
if(x(j)>=m(M))
lh(j)=q(M);
end
end
end
plot(t,x);
grid on;
hold on
plot(t,lh,'r');
legend('抽樣值','量化值');
xlabel('圖1 余弦信號的均勻量化')
(2)以32Hz頻率對例1中的x(t)進行采樣,并進行8級均勻量化,用stem函式繪出正弦波波形樣值圖,量化后的樣值圖、量化誤差圖,


%均勻量化例1中(2),抽樣頻率32Hz
clear all
fs=32;
dt=1/fs;
M=8;
Am=1;
t=0:dt:1;
x=Am*cos(2*pi*t);
v=(max(x)-min(x))/M;%量化間隔
m(1)=min(x);
for i=1:M
m(i+1)=m(i)+v;
q(i)=(m(i)+m(i+1))/2;%量化電平值
end
for j=1:length(x)
for i=1:M-1
if(x(j)>=m(i)&x(j)<m(i+1))
lh(j)=q(i);
end
if(x(j)>=m(M))
lh(j)=q(M);
end
end
e(j)=x(j)-lh(j);% 量化誤差值
end
stem(t,x);
grid on;
hold on
stem(t,lh,'r');
legend('抽樣值','量化值');
xlabel('圖2 均勻量化離散圖')
figure(2)
stem(t,e);
xlabel('圖3 均勻量化的量化誤差圖')
(3)以2000Hz對x(t)進行采樣,改變數化級數,分別仿真得到編碼位數為2~8位時的量化信噪比,繪出量化信噪比隨編碼位數變化的曲線,另外繪出理論的量化信噪比曲線進行比較,

%均勻量化例1中(3)不同編碼位數的量化信噪比
clear all
fs=2000;
dt=1/fs;
n=2:8;
M=2.^n;
Am=1;
t=0:dt:1;
x=Am*cos(2*pi*t);
for k=1:length(M)
v=(max(x)-min(x))/M(k);
m(1)=min(x);
for i=1:M(k)
m(i+1)=m(i)+v;
q(i)=(m(i)+m(i+1))/2;
end
for j=1:length(x)
for i=1:M(k)-1
if(x(j)>=m(i)&x(j)<m(i+1))
lh(j)=q(i);
end
if(x(j)>=m(M(k)))
lh(j)=q(M(k));
end
end
e(j)=x(j)-lh(j);
end
s=mean(x.^2);
N=mean(e.^2);
lzb(k)=10*log10(s/N);%均勻量化量噪比的仿真值
lzb2(k)=6.02*n(k)+1.76;%%均勻量化量噪比的理論值
end
plot(n,lzb,'o-');
hold on;
plot(n,lzb2,'ro-');
legend('仿真值','理論值');
xlabel('圖4 不同編碼位數的均勻量化信噪比')
例【2】產生一個周期的正弦波,對x(t)按A律進行壓縮,然后以32Hz頻率進行抽樣,再進行8級均勻量化,壓擴引數A=87.6,繪出壓縮前后的信號波形圖(用plot函式)、樣值圖、量化后的樣值圖(后兩個用stem函式),



clear all
fs=32;
dt=1/fs;
M=16;
Am=1;
t=0:dt:1;
x=Am*sin(2*pi*t);
x=x/max(x);
A=87.6;
for i=1:length(x)
if(abs(x(i))>=0&abs(x(i))<=1/A)
if(x(i)>0)
y(i)=A*x(i)/(1+log(A));
else y(i)=-A*x(i)/(1+log(A));
end
else
if(x(i)>0)
y(i)=(1+log(A*x(i)))/(1+log(A));
else y(i)=-(1+log(A*x(i)))/(1+log(A));
end
end
end
plot(t,x);
grid on;
hold on
plot(t,y,'r')
legend('歸一化后原信號','A律壓縮后的信號');
xlabel('圖1 抽樣信號A律壓縮')
v=2/M;
m(1)=-1;
for i=1:M
m(i+1)=m(i)+v;
q(i)=(m(i)+m(i+1))/2;
end
for j=1:length(y)
for i=1:M-1
if(y(j)>=m(i)&y(j)<m(i+1))
lh(j)=q(i);
end
if(y(j)>=m(M))
lh(j)=q(M);
end
end
e(j)=y(j)-lh(j);
end
figure(2)
stem(t,y,'filled');
grid on;
hold on
stem(t,lh,'r','filled');
legend('A壓縮后信號抽樣值','量化值');
xlabel('圖2 A律壓縮后的抽樣值和量化值')
figure(3)
stem(t,e);
xlabel('圖3 A律壓縮量化的量化誤差圖')
四、 實驗內容
- 對于輸入信號為sin(t)信號進行抽樣和均勻量化,改變抽樣頻率、量化級數和信號大小,根據MATLAB獲得量化誤差和量化信噪比,同一個坐標軸上畫出原信號和已量化信號,比較著不同情況下的量化信噪比,
- 對于輸入信號為sin(t)信號進行A壓縮率的非均勻量化,改變抽樣頻率和信號大小,根據MATLAB獲得量化誤差和量化信噪比,同一個坐標軸上畫出原信號和已量化信號,比較著不同情況下的量化信噪比,
更多文章如下
【通信工程】資訊類,電子類,電氣工程,自動化,計算機,軟體工程,機電,等相關專業 全套學習指導
https://blog.csdn.net/qq_45696377/article/details/116434132
【全套完結】通信原理----全套Matlab仿真實驗報告
https://blog.csdn.net/qq_45696377/article/details/121384301
上一篇:
【通信原理】實驗六 基于Matlab的2PSK和2DPSK調制
https://blog.csdn.net/qq_45696377/article/details/121660263
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/377241.html
標籤:其他
下一篇:docker安裝SMQTT
