📄 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 + -