返回信息流这是我以前做通原仿真实验的时候写的程序(当时通过了验收),
最近看数字信号处理的循环卷积和线性卷积的区别,总觉得有点
不对劲,希望数字信号处理学得好的朋友解答一下我的疑惑。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N=2^14; %采样点数
L=32; %每码元的采样点数
M=N/L; %码元数
Rb=2; %码速率是2Mb/s
Ts=1/Rb; %码元间隔
dt=Ts/L; %时域采样间隔
df=1/(N*dt); %频域采样间隔
T=N*dt; %截短时间
Bs=N*df/2; %系统带宽
Na=4; %示波器扫描宽度为4个码元
alpha1=0.05; %取3组不同的滚降系数
%划分时域频域区间
t=linspace(-T/2,T/2,N);
f=linspace(-Bs,Bs,N);
%升余弦滚降(alpha=0.05)
g11=sin(pi*t/Ts)./(pi*t/Ts);
g21=cos(alpha1*pi*t/Ts)./(1-(2*alpha1*t/Ts).^2);
g1=g11.*g21;
G1=t2f(g1);
%产生码元序列
a=sign(randn(1,M));
%产生冲激序列
imp=zeros(1,N);
imp(L/2:L:N)=a/dt;
S=t2f(imp).*G1; %升余弦信号的傅氏变换
s=f2t(S); %升余弦信号的时域波形
其中t2f为
function X=t2f(x)
global dt df N t f T
%X=t2f(x)
%x为时域的取样值矢量
%X为x的傅氏变换
%X与x长度相同,并为2的整幂。
%本函数需要一个全局变量dt(时域取样间隔)
H=fft(x);
X=[H(N/2+1:N),H(1:N/2)]*dt;
end
f2t为
function x=f2t(X)
global dt df t f T N
%x=f2t(X)
%x为时域的取样值矢量
%X为x的傅氏变换
%X与x长度相同并为2的整幂
%本函数需要一个全局变量dt(时域取样间隔)
X=[X(N/2+1:N),X(1:N/2)];
x=ifft(X)/dt;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
从程序中可以看到t2f实际上是作dft,那么下面这一行
S=t2f(imp).*G1; %升余弦信号的傅氏变换
S实际上应该是imp和g1循环卷积结果的dft不是么?
s=f2t(S); %升余弦信号的时域波形
那么s为imp和g1的循环卷积结果,但是我觉得信号通过
升余弦滤波器应该是一个线形卷积才对啊,而且这里并不
满足线形卷积和循环卷积相等的条件,怎么回事呢?
越想越晕,不明白。
这是一条镜像帖。来源:北邮人论坛 / matlab / #7286同步于 2010/6/7
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
线形卷积和循环卷积(多年都没整清楚)
dooon
2010/6/7镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。