六十岁学编程 2023-05-22 21:52 采纳率: 50%
浏览 86

用matlab表示周期方波序列(离散时间的)并画出频谱

题目如图:

img


我的代码如下,感觉用阶跃函数表示出方波序列的话不太对劲,画出来的图不太对

img

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-28 01:08
    关注

    以下代码可以实现对输入的周期方波序列的频谱图绘制,并使用椭圆滤波器滤波后得到滤波后的信号及其频谱图。

    fs = 100000; %采样频率
    T = 1/fs; %采样间隔
    N = 1000; %采样点数
    t = -0.002:T:0.002;
    f = -fs/2 : fs/N : fs/2-fs/N;
    
    % 生成周期方波序列
    x = square(2*pi*1000*t,50); 
    
    % 绘制原始信号及其频谱图
    figure(1);
    subplot(2,1,1);
    plot(t,x);
    xlabel('Time');
    ylabel('Amplitude');
    title('Original Signal: Periodic Square Wave');
    grid on;
    subplot(2,1,2);
    sp_x = abs(fftshift(fft(x,N)))/N;
    plot(f,sp_x);
    xlabel('Frequency');
    ylabel('Magnitude');
    title('Frequency Spectrum of Original Signal');
    grid on;
    
    % 设计滤波器
    Wp = 3100*2*pi/(fs*pi); % 通带频率
    Wr = 4800*2*pi/(fs*pi); % 阻带频率
    Ap = 1; % 通带最大纹波
    Ar = 60; % 阻带最小衰减
    
    [N1,wc1] = ellipord( Wp , Wr , Ap , Ar );
    [b,a] = ellip(N1,Ap,Ar,wc1,'low'); 
    
    % 绘制滤波器的幅相特性
    figure(2);
    freqz(b,a,1024,fs);
    title('Magnitude and Phase Response of Elliptic Low-pass Filter');
    
    % 使用滤波器进行滤波
    y = filter(b,a,x);
    
    % 绘制滤波后的信号及其频谱图
    figure(3);
    subplot(2,1,1);
    plot(t,y);
    xlabel('Time');
    ylabel('Amplitude');
    title('Filtered Signal');
    grid on;
    subplot(2,1,2);
    sp_y = abs(fftshift(fft(y,N)))/N;
    plot(f,sp_y);
    xlabel('Frequency');
    ylabel('Magnitude');
    title('Frequency Spectrum of Filtered Signal');
    grid on;
    

    其中的注释可以更好地理解每一步的意义和实现方式。绘制的图像也可以帮助理解信号和滤波器的效果。

    评论

报告相同问题?

问题事件

  • 提问应符合社区要求 5月25日
  • 修改了问题 5月23日
  • 请提交代码 5月22日
  • 修改了问题 5月22日
  • 展开全部

悬赏问题

  • ¥100 解决数据不连续出现问题
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了