• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: Matlab
  • 标签: MATLAB  

资源简介

波形发生并生成十进制和二进制的TXT文件,源码有详细说明,可根据自己的需求生成自己的想要的单频信号或者混合信号,并且生成波形文件,可以是十进制也可以是二进制。非常方便。

资源截图

代码片段和文件信息

%E4_8_NoiseAndCarrier.M
f4=100;
f1=300;       %信号1频率为200Hz
f3=400;
f2=500;       %信号2频率为800Hz
Fs=2000;      %采样频率为2KHz
N=12;         %量化位数
%Pn=Pn0*Fs/2; %噪声信号功率
%width=0.5;   %函数SAWTOOTH()的尺度参数为0.5
%duty=50;     %函数SQUQRE()的尺度参数为50
%产生信号
t=0:1/Fs:1;
c1=2*pi*f1*t;
c2=2*pi*f2*t;
c3=2*pi*f3*t;
c4=2*pi*f4*t;
%sq=square(cduty);%产生方波
%tr=sawtooth(cwidth);%产生三角波
s1=sin(c1);%产生正弦波
s2=sin(c2);%产生正弦波
s3=sin(c3);
s4=sin(c4);
s=s1+s2+s3+s4;   %产生两个单载波合成后的信号
%产生随机序列信号
noise=randn(1length(t));%产生高斯白噪声序列

%归一化处理
noise=noise/max(abs(noise));
s=s/max(abs(s));

%12比特量化
Q_noise=round(noise*(2^(N-1)-1));
Q_s=round(s*(2^(N-1)-1));

%调用自已设计的滤波器函数对信号进行滤波
hn=E4_8_Fir8Serial;
Filter_noise=filter(hn1Q_noise);
Filter_s=filter(hn1Q_s);

%求信号的幅频响应
m_noise=20*log(abs(fft(Q_noise1024)))/log(10); m_noise=m_noise-max(m_noise);
m_s=20*log(abs(fft(Q_s1024)))/log(10); m_s=m_s-max(m_s);
%滤波后的幅频响应
Fm_noise=20*log(abs(fft(Filter_noise1024)))/log(10); Fm_noise=Fm_noise-max(Fm_noise);
Fm_s=20*log(abs(fft(Filter_s1024)))/log(10); Fm_s=Fm_s-max(Fm_s);
%滤波器本身的幅频响应
m_hn=20*log(abs(fft(hn1024)))/log(10); m_hn=m_hn-max(m_hn);

%设置幅频响应的横坐标单位为Hz
x_f=[0:(Fs/length(m_s)):Fs/2];
%只显示正频率部分的幅频响应
mf_noise=m_noise(1:length(x_f));
mf_s=m_s(1:length(x_f));
Fmf_noise=Fm_noise(1:length(x_f));
Fmf_s=Fm_s(1:length(x_f));
Fm_hn=m_hn(1:length(x_f));

%绘制幅频响应曲线
subplot(211)
plot(x_fmf_noise‘-.‘x_fFmf_noise

评论

共有 条评论