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

Posted 一只学习的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信号处理常用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);

以上是关于信号处理常用matlab之16数据链信号生成的主要内容,如果未能解决你的问题,请参考以下文章

信号处理基于数字基带信号波形仿真matlab源码

信号处理常用matlab之成形滤波

通信算法之五十五:基带算法链路设计

对AM信号FFT的matlab仿真

信号处理常用matlab之作图

(高分)用Matlab模拟ASK系统(数字信号处理实验)