?? polyphase_filtering.m
字號:
clear all;
clc;
%%%信號的產生
t=0:1/3e6:0.01;
w=2*pi*60.5e6;
x=cos(w*t);
%%%信號的產生結束
fx=fft(x);
afx=abs(fx)/max(abs(fx));
dafx=20*log10(afx);
plot(dafx);
title('frequency domain of the hole signal');
%%%正交雙通道的分選,即奇偶抽取和符號變換
x(2:4:end)=x(2:4:end)*(-1);%符號變換
x(3:4:end)=x(3:4:end)*(-1);
I2=x(1:2:end);%偶數的I
Q1=x(2:2:end);%奇數的Q
%%%正交雙通道的分選,即奇偶抽取和符號變換 結束
fi=fft(I2);
afi=abs(fi)/max(abs(fi));
dbafi=20*log10(afi);
figure
plot(dbafi);
title('frequency domain of I channel signal');
fq=fft(Q1);
afq=abs(fq)/max(abs(fq));
dbafq=20*log10(afq);
figure
plot(dbafq);
title('frequency domain of Q channel signal');
%%%%多相濾波器的設計
%%%帶通濾波器的設計
wp=0.5*pi;
ws=0.51*pi;
width=ws-wp;
N=ceil(8*pi/width);
if(rem(N,2))==0
N=N+1;
end
Nw=N;
wc=(wp+ws)/2;
n=0:N-1;
alpha=(N-1)/2;
m=n-alpha+0.00001;
hd=sin(wc*m)./(pi*m);
win=hann(Nw);
h=hd.*win';
b=h;
figure;
freqz(b,1,512);
title('frequency domain of filtering');
%%%帶通濾波器的設計結束
%%%濾波器多相的實現
h1=h(1:2:end-1);
h3=h(2:2:end);
%%%濾波器多相的實現 結束
%%%%多相濾波器的設計 結束
%%%兩個通道的濾波
I=conv(I2,h3);
Q=conv(Q1,h1);
%%%兩個通道的濾波 結束
%%%%合成復信號
y=I(1:end-1)+j*Q;
%%%%合成復信號 結束
Z=fft(y);
figure
xx=linspace(0,2*pi,length(Z));
subplot(1,2,1);
az=abs(Z)/max(abs(Z));
dbaz=20*log10(az);
plot(xx,dbaz)
subplot(1,2,2);
plot(xx,angle(Z));
title('frequency domain of complex signal');
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -