1.1補充——AD位數對檢測訊號的影響
阿新 • • 發佈:2018-11-20
% 一、程式說明:
% 本程式是AD量化噪聲的例項
% 首先對單一訊號進行6位量化和32位量化,觀察兩個訊號的頻譜。
% 其次,產生兩個功率相差45dB的兩個訊號,觀察小位數量對弱訊號的影響。
%程式名:A/D位數的影響 % 一、程式說明: % 本程式是例了AD倆量化噪聲 % 首先對單一訊號進行6位量化和32位量化,觀察兩個訊號的頻譜。 % 其次,產生兩個功率相差45dB的兩個訊號,觀察小位數量對弱訊號的影響。 clear;%清除記憶體 close all;%關閉所有圖形 x=sin(2*pi*(0:200)*0.042/10);%產生單載波的正弦訊號 figure; plot(30:90,x(30:90),'b'); grid on; ylabel('x(n)','FontSize',14); xlabel('n','FontSize',14);%標註XY座標名稱 hold on; xd=intbR(x,5);%對訊號進行6位數量化 plot(30:90,xd(30:90),'r'); title('16位和6位時域數量化結果圖','FontSize',14); xf=fft(x,512);%求大位數量化訊號的頻譜 xdf=fft(xd,512);%求小位數量化訊號的頻譜 figure; plot((0:255)*10/512,20*log10(abs(xf(1:256)))); grid on; ylabel('訊號頻譜','FontSize',14); xlabel('KHz','FontSize',14); title('16位數量化頻譜圖','FontSize',14); figure; plot((0:255)*10/512,20*log10(abs(xdf(1:256)))); grid on; ylabel('訊號頻譜','fontsize',12); xlabel('KHz','FontSize',14);%標註XY軸座標 title('6位數量化頻譜圖','FontSize',14); %--------------------------------------------------------------- N=512; x=sin(2*pi*(0:N/2-1)*0.042/10)+0.0055*sin(2*pi*(0:N/2-1)*2.3/10); %產生大小不同的兩個正弦訊號 %----------------------------------------------------------------- %產生大小不同的兩個正弦訊號,增加了一個很小的高頻訊號在裡面 %----------------------------------------------------------------- figure; plot(0:N/2-1,x(1:N/2),'b'); grid on; ylabel('X(N)','fontsize',14); xlabel('N','fontsize',14); title('隱藏微弱高頻訊號在裡面'); xd=intbR(x,5); xf=fft(x,N); xdf=fft(xd,N); figure; plot((0:N/2-1)*10/N,20*log10(abs(xf(1:N/2)))); grid on; ylabel('訊號頻譜','FontSize',14); xlabel('KHz','fontsize',14);%標註XY軸座標 title('16位數量化頻譜圖','FontSize',14); figure; plot((0:N/2-1)*10/N,20*log10(abs(xdf(1:N/2)))); grid on; ylabel('訊號頻譜','FontSize',14); xlabel('KHZ','fontsize',14);%標註XY軸的座標 title('6位數量化頻譜圖','FontSize',14);
自定義函式部分:
function br=intbR(d,b)%將十進位制數d利用舍入法得到b位(不包含符號位)二進位制數,然後
% 再將二進位制數轉換為十進位制數br
m=1;dr1=abs(d);
while fix(dr1)>0
dr1=abs(d)/(2^m);
m=m+1;
end
br=fix(dr1*2^b+.5);
br=sign(d).*br.*2^(m-b-1);
end
首先,我們來看第一部分
x=sin(2*pi*(0:200)*0.042/10);%產生單載波的正弦訊號 figure; plot(0:200,x(1:201),'b');
這裡,在上一節已經講過,0.042是單載波正弦訊號的頻率,10是取樣率,於是生成了單載波的離散序列正弦訊號X
然後進行畫圖
在這裡程式中取的點範圍是【30:90】
下面進行量化,量化後的結果為紅色
由此我們可以看到解析度高的AD,頻譜是非常平滑的
現在我們來看在頻譜上,能否監測上述訊號含有高頻訊號,也就是說位數越多,解析度越高,越容易檢測到微弱訊號