[問題] 如何利用線性調頻Z轉換得到經過線性調쀠…已回收
在書本上有看到1個線性調頻Z轉換的範例,如下
有一信號x(t)=10*sin((2*pi*60*t)+0.1*pi)+0.5*sin[(2*pi*(1-2*0.015)*60*t)+0.3*pi]
在MATLAB下實現信號x(t)的程式如下,
t=0:0.0001:1;
y=10*sin(2*pi*60*t+0.1*pi)+0.5*sin(2*pi*(1-2*0.015)*60*t+0.3*pi);
plot(t,y);
xlabel('時間');
ylabel('幅值');
x(t)的時域波形圖,如下網址圖3所示。
http://www.wretch.cc/album/show.php?i=ocean2466&b=2&f=1357389724&p=2
於Matlab下對信號x(t)在0-10Hz的頻率範圍使用CZT(線性調頻Z變換)
的快速演算法進行細化處理後,其幅頻譜圖如圖4所示
http://www.wretch.cc/album/show.php?i=ocean2466&b=2&f=1357389725&p=3
以下是老師給的程式,老師是說程式可以跑出圖4(fs為採樣頻率)
b=fir1(300,0.2,'high',chebwin(301,17)); % FIR高通濾波器
d=filter(b,2,x);
fs=200;
f1=0;
f2=10;
m=256;
w = exp(-j*2*pi*(f2-f1)/(m*fs));
a = exp(j*2*pi*f1/fs);
z = czt(d,m,w,a);
fz = ((0:length(z)-1)'*(f2-f1)/length(z)) + f1;
plot(fz,abs(z));
title('CZT')
xlabel('頻率(Hz)');
ylabel('幅值');
但是我在matlab中執行上面的程式時出現以下的錯誤訊息
Undefined function or variable "x".
Error in ==> ff at 3
d=filter(b,2,x);
後來我有請教別人說這是什麼問題,他說是:
程式中並沒有給x,這個x是你所希望去過濾的訊號,
或者說是原始訊號,也可以產生一個亂數訊號去進行,
例如x=randn(1,2048);
所以後來我在程式中加入x=randn(1,2048);
修改後的程式如下;
x=randn(1,2048);
b=fir1(300,0.2,'high',chebwin(301,17)); % FIR高通濾波器
d=filter(b,2,x);
fs=200;
f1=0;
f2=10;
m=256;
w = exp(-j*2*pi*(f2-f1)/(m*fs));
a = exp(j*2*pi*f1/fs);
z = czt(d,m,w,a);
fz = ((0:length(z)-1)'*(f2-f1)/length(z)) + f1;
plot(fz,abs(z));
title('CZT')
xlabel('頻率(Hz)');
ylabel('幅值');
修改後的程式可以執行了,但是執行後的圖形並不是圖4的圖形,請問要怎麼調整才能跑出圖4呢??
還有想請問程式中
b=fir1(300,0.2,'high',chebwin(301,17)); % FIR高通濾波器
d=filter(b,2,x);
w = exp(-j*2*pi*(f2-f1)/(m*fs));
a = exp(j*2*pi*f1/fs);
z = czt(d,m,w,a);
fz = ((0:length(z)-1)'*(f2-f1)/length(z)) + f1;
這6行指令分別代表什麼意思呢???
ps.因為花了很多時間、找了很多資料但還是不懂程式、也找不出原因
請大家幫我一下,感激不盡~~謝謝^_____^
.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.43.105
※ 編輯: powerdoor 來自: 114.45.43.105 (04/26 16:59)
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章