信号处理常用matlab之16数据链信号生成

(1)基带信号参数设置
基带信号的码率5MSPS;
设置每个码元采8个点,因此基带采样率是40M(此参数在后面对基带信号进行上采样设置滤波器输入采样率时要用);
(2)产生基带的随机序列,然后调用matlab自带的函数mskmod进行调制并内插24倍
(3)生成滤波器系数,并对内插后的基带信号进行滤波
(4)进行5倍的抽取,最后采样率变为192M
(5)上变频为中频信号
(6)对生成的信号加高斯白噪声

涉及到的知识点:
(1)内插滤波抽取理论:
一般是先内插,然后滤波,最后抽取,这里选择的是先24倍,滤波后再5倍抽取;其中滤波器系数的生成: Matlab中继承了可视化的滤波器设计插件fdatool,可以方便地在可视化界面中设计滤波器参数,然后导出参数,以备后续使用。具体使用方法如下:
1)在命令行输入fdatool即可弹出如下的滤波器设计窗口
在这里插入图片描述
2)设置要生成的滤波器类型和对应参数,比如上图设计低通滤波器,设置采样率48M,通带和阻带截止频率分别为9.6M和12M,通带衰减和阻带衰减分别为1dB和80dB,点击Design Filter按钮即可设计出对应的滤波器。
在这里插入图片描述
3)导出滤波器函数m文件,选择File/Generate MATLAB Code/Filter Design Function(with System Objects),生成滤波器函数文件:

function Hd = lp_filter
%LP_FILTER Returns a discrete-time filter object.

% MATLAB Code
% Generated by MATLAB(R) 9.4 and DSP System Toolbox 9.6.
% Generated on: 10-Jun-2021 22:54:59

% Equiripple Lowpass filter designed using the FIRPM function.

% All frequency values are in kHz.
Fs = 48000;  % Sampling Frequency

Fpass = 9600;            % Passband Frequency
Fstop = 12000;           % Stopband Frequency
Dpass = 0.057501127785;  % Passband Ripple
Dstop = 0.0001;          % Stopband Attenuation
dens  = 20;              % Density Factor

% Calculate the order from the parameters using FIRPMORD.
[N, Fo, Ao, W] = firpmord([Fpass, Fstop]/(Fs/2), [1 0], [Dpass, Dstop]);

% Calculate the coefficients using the FIRPM function.
b  = firpm(N, Fo, Ao, W, {dens});
Hd = dsp.FIRFilter( ...
    'Numerator', b);
% [EOF]

4)可调用上述滤波器函数实现滤波,假设输入为X,则:

h = lp_filter;
fiter(h,1,X);

(2)全频带和带内信噪比的区分:给定的指标通常是带内信噪比,加噪时要换算为全频带信噪比;
(3)matlab存数据文件的存储格式

fid= fopen('数据文件存储路径','w');
fwrite(fid,varible_save,'int16');
fclose(fid);
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值