matlab单点弦截发,急!Matlab关于正弦混合信号截断周期拓延

对于截断加窗和周期拓延总是很糊涂,这里先给出我的一段程序

clear all;

fs = 100000;% 取样频率

t=(0:1/fs:0.1)';

N = length(t)-1; %这里的N是谱线数,和取样长度差1

df = fs/N;%为了重合谱线

%信号

%----------------------------------

DC=5.250;

f0=50;

f1=150;

f2=300;

y=DC+5*sin(2*pi*f0*t+(30/180*pi))+5*sin(2*pi*f1*t+(45/180*pi))+5*sin(2*pi*f2*t+(60/180*pi));

figure(1); %画信号图

plot(y)

title('1')

ylabel('幅度')

xlabel('N 点')

grid

% ----------------------------------FFT变换

y = y - mean(y);%去除直流分量

H = fft(y,N+1);%作所有取样点的FFT

mag = abs(H)*2/(N+1);

f =(0:length(H)-1)'*fs/(length(H));%归1频率

figure(2);

plot(f(1:(N+1)/2),mag(1:(N+1)/2));

xlabel('frequenz(Hz)');

ylabel('Amplitudgang');

grid;

phase = angle(H)+pi/2;%相位,余弦到正弦

for i=1:N+1

if   phase(i) > pi

phase(i) = phase(i)-pi;

else

phase(i) = phase(i);

end

end %让相位角只在-pi pi 之间变换

figure(3);

plot(f(1:(N+1)/2),phase(1:(N+1)/2)*180/pi)

xlabel('Frequency (Hz)')

ylabel('Phase (Degrees)')

grid on

figure(4);           clf;%画频谱相位图

subplot(211), loglog(f(1:(N+1)/2),mag(1:(N+1)/2));           hold on;

xlabel('frequenz(Hz)');

ylabel('Amplitudgang');

grid;

subplot(212), semilogx(f(1:(N+1)/2),phase(1:(N+1)/2)*180/pi);           hold on;

xlabel('Frequency (Hz)')

ylabel('Phase (Degrees)')

grid on

% ----------------------------------

关于混合波最大频率300HZ的初始相位差60度,周期为最大频率的倒数,计为T,则可以算出此正弦波第1个周期起始点是T1,结束点为T+T1

那么,如果要在原信号里的一个周期加个窗截断,然后把这段加过窗的信号进行周期拓延。。。应该怎么写程序呢?关键是这里我已经用了整周期取样,所以应该不管加窗与否,应该在图形上变化不大吧??

自己试了很久都不知道怎么弄,请大家帮帮忙看看,感谢感谢了。。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值