【matlab】信号时域混叠之周期卷积

具体内容:用不同方法实现周期卷积,体会线性卷积、循环卷积以及周期卷积的异同;

两原信号:1.中心点在0.5,宽度为3   2.中心点在4,宽度为4;

混叠条件:时间长度T<宽度1+宽度2 时发生混叠;

%作业:周期卷积
clc;
clear;
close all;
Ts=0.01;
T1S=-2;%起点位置
T2S=1;
c1=0.5;%中心点
c2=4;
w1=3;%宽度
w2=4;
%时域混叠
T=6;%6<3+4
t1=T1S:Ts:T1S+T-Ts;
t2=T2S:Ts:T2S+T-Ts;
L=length(t1);
x1=rectpuls(t1-c1,w1);
x2=rectpuls(t2-c2,w2);
F1=fft(x1)*Ts;
F2=fft(x2)*Ts;
y=ifft(F1.*F2)/Ts;
xp1=[x1,x1,x1,x1];
xp2=[x2,x2,x2,x2];
yp=[y,y,y,y];
tp1=T1S:Ts:(T1S+4*T-Ts);
tp2=T2S:Ts:(T2S+4*T-Ts);
tp3=(T1S+T2S):Ts:(T1S+T2S+4*T-Ts);
subplot(4,3,1);
plot(tp1,xp1);
axis([T1S-1,((4*L-1)*Ts+T1S)+1,-0.5,1.5]);
subplot(4,3,2);
plot(tp2,xp2);
axis([T2S-1,((4*L-1)*Ts+T2S)+1,-0.5,1.5]);
subplot(4,3,3);
plot(tp3,yp);
axis([T1S+T2S-1,((4*L-1)*Ts+T1S+T2S)+1,-0.5,4]);
%刚好不混叠 
T=7;
t1=T1S:Ts:T1S+T-Ts;
t2=T2S:Ts:T2S+T-Ts;
L=length(t1);
x1=rectpuls(t1-c1,w1);
x2=rectpuls(t2-c2,w2);
F1=fft(x1)*Ts;
F2=fft(x2)*Ts;
y=ifft(F1.*F2)/Ts;
xp1=[x1,x1,x1,x1];
xp2=[x2,x2,x2,x2];
yp=[y,y,y,y];
tp1=T1S:Ts:(T1S+4*T-Ts);
tp2=T2S:Ts:(T2S+4*T-Ts);
tp3=(T1S+T2S):Ts:(T1S+T2S+4*T-Ts);
subplot(4,3,4);
plot(tp1,xp1);
axis([T1S-1,((4*L-1)*Ts+T1S)+1,-0.5,1.5]);
subplot(4,3,5);
plot(tp2,xp2);
axis([T2S-1,((4*L-1)*Ts+T2S)+1,-0.5,1.5]);
subplot(4,3,6);
plot(tp3,yp);
axis([T1S+T2S-1,((4*L-1)*Ts+T1S+T2S)+1,-0.5,4]);
%不混叠
T=8;
t1=T1S:Ts:T1S+T-Ts;
t2=T2S:Ts:T2S+T-Ts;
L=length(t1);
x1=rectpuls(t1-c1,w1);
x2=rectpuls(t2-c2,w2);
F1=fft(x1)*Ts;
F2=fft(x2)*Ts;
y=ifft(F1.*F2)/Ts;
xp1=[x1,x1,x1,x1];
xp2=[x2,x2,x2,x2];
yp=[y,y,y,y];
tp1=T1S:Ts:(T1S+4*T-Ts);
tp2=T2S:Ts:(T2S+4*T-Ts);
tp3=(T1S+T2S):Ts:(T1S+T2S+4*T-Ts);
subplot(4,3,7);
plot(tp1,xp1);
axis([T1S-1,((4*L-1)*Ts+T1S)+1,-0.5,1.5]);
subplot(4,3,8);
plot(tp2,xp2);
axis([T2S-1,((4*L-1)*Ts+T2S)+1,-0.5,1.5]);
subplot(4,3,9);
plot(tp3,yp);
axis([T1S+T2S-1,((4*L-1)*Ts+T1S+T2S)+1,-0.5,4]);
%另外方法
T=8;
M=4;%重复4次
TT=T*M;%总时长延伸
w1=3;%宽度
w2=4;
c1=2.5;%中心点
c2=3;
t=0:Ts:TT-Ts;
Lt=length(t);
Tp=Lt/M;

x1=rectpuls(t-c1,w1);
xp1=zeros(1,Lt);
for i=1:M
    for j=1:Tp
        xp1(Tp*(i-1)+j)=x1(j);
    end
end
x2=rectpuls(t-c2,w2);
F1=fft(xp1)*Ts;
F2=fft(x2)*Ts;
y=ifft(F1.*F2)/Ts;

subplot(4,3,10);
plot(t,xp1);
axis([-1,TT+1,-0.5,1.5]);
subplot(4,3,11);
plot(t,x2);
axis([-1,TT+1,-0.5,1.5]);
subplot(4,3,12);
plot(t,y);
axis([-1,TT+1,-0.5,4]);    

       

第一排分别是:两原信号和卷积后发生混叠的信号;

第二排分别是: 两原信号和卷积后恰好不混叠的信号;

第三排分别是:两原信号和卷积后不发生混叠的信号;

第四排分别是:用另一种法的 两原信号和卷积后不发生混叠的信号;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

H_learn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值