我目前正在學習計算機科學,並且我有一個任務可以解決我的實驗項目。我必須將輸入信號&係數'從時域轉移到頻域,並將它們加在一起並轉回到時域。我的結果必須匹配過濾器功能輸出。但是,我似乎無法找到在這裏做錯了什麼。當我通過conj函數添加兩個頻率時,我認爲它錯了。不幸的是,我的老師和我的實驗室主管都沒有興趣實際教授任何東西,所以我必須自己找到答案。希望你們能幫忙。從時域到頻率的輸入和係數,將它們加在一起並回到時域
clc
clear
B = [0.2];
A = [1,-0.5];
xt = ones(1,20);
xt = padarray(xt,[0,100])
A1 = 1;
A2 = 1;
f1 = 1;
f2 = 25;
fs = 1000;
xd = fft(xt);
wd = freqz(B,A,length(xt));
y = filter(B,A,xt);
yd = conj((wd)').*xd;
yt = real(ifft(yd));
subplot(4,2,1);
plot(xt)
title('Input signal')
subplot(4,2,2);
plot(abs(xd))
title('Input in frequency domain')
subplot(4,2,4);
plot(abs(wd))
title('Coefficients in frequency domain')
subplot(4,2,7);
plot(y)
title('Output using FILTER function')
subplot(4,2,6);
plot(yd)
title('Adding input with coefficients in frequency domain')
subplot(4,2,8);
plot(yt)
title('Back to time domain using IFFT')
我會改變你的問題,如「過濾在時域與頻域倍增不匹配。 –
@BrianGoodwin這是一個更好的標題。在閱讀代碼之前,我不明白這個問題的目的。 – rayryeng