• 大小: 6KB
    文件类型: .m
    金币: 2
    下载: 1 次
    发布日期: 2021-05-25
  • 语言: Matlab
  • 标签: Matlab  DDC  

资源简介

一、对A/D采样后的高频/中频信号序列进行频谱搬移(通过与数控振荡器产生的数字本振信号序列进行相乘下变频到基频)。
二、对基频上高采样率的信号序列进行抽取,多采样率变换,降低数字信号序列密度。
实际的数字下变频在对高频/中频信号序列进行A/D采样之前为了防止发生频率混叠,要进行预滤波处理。

资源截图

代码片段和文件信息

%数字下变频仿真程序
%数字下变频的主要作用有两点:

%一、对A/D采样后的高频/中频信号序列进行频谱搬移(通过与数控振荡器产生的数字本振信号序列进行相乘下变频到基频)。
%二、对基频上高采样率的信号序列进行抽取,多采样率变换,降低数字信号序列密度。
                          
%%%%%实际的数字下变频在对高频/中频信号序列进行A/D采样之前为了防止发生频率混叠,要进行预滤波处理。
%%%%在对基频上高采样率的信号序列进行抽取之前,要通过CIC滤波,HB滤波,FIR滤波,以防止抽取时发生频谱混叠。
                         
clc              
clear all;
close all;
fsamp=80e6;            %fsamp=80MHz 输入采样频率为80MHz
Ts   =1/fsamp;         %Ts为fsamp的倒数 即输入采样间隔Ts
band =2e6;             %预设的采样带宽为30MHz
Tp   =50e-6;          %预设的采样时间周期Tp为100us
N    =Tp*fsamp;        %N为输入采样频率与采样时间周期之积。表示在采样时间周期Tp内,以fsamp的采样率采样可以得到的采样点数
u    =band/Tp;         %u为带宽除以时宽。表示在单位时间间隔内的频带宽度。也即这30M的带宽分布在Tp=60us的时间周期上,单位时间的频带宽度
t    =-Tp/2:Tp/N:Tp/2-Tp/N;               %t取点从-Tp/2开始以Tp/N为步进值增加到Tp/2-Tp/N。
ft   =37e6;
f0   =30e6;                               %输入的已调频信号载波频率为30MHz
xs   =cos(2*pi*(f0*t+0.5*u*t.^2));        %输入的已调频信号经fsamp=80MHz带通采样后的输出。相当于A/D转换后的数字信号序列
S0   =fft(xsN);                          %S0是对A/D转换后的数字信号序列进行N点fft的结果;
S1   =abs(S0);                            %S1是对s0求模的结果;
S2   =(S1);
S2   =awgn(S280);                        %在S2的频谱中加入50db的高斯白噪声
f    =0:fsamp/N:fsamp-fsamp/N;            %f的取点由0开始以fsamp/N为步进值直到fsamp-fsamp/N结束

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure1输入信号频谱图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(1);  
subplot(121);%画出载频为30MHz有用信号带宽为2MHz的带通信号序列频谱
plot(xs);
ylim([-1.51.5]);
title(‘输入信号时域波形‘);
subplot(122);
plot(f/1e620*log10(S2/max(S2))); 
xlim([2535]);                            %横轴以MHz为单位,纵轴以dB形式,其中S2/max(S2)表示输出该带通信号序列相对幅度大小,对它取对数后的结果就是dB的形式了。
title(‘输入信号频谱‘);
xlabel(‘frequency(MHz)‘);             
ylabel(‘Magnitude(dB)‘);                 
grid on;                                   
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                        
 
%NCO数控振荡器模块%
for t=1:N
    t1=(t-1)*Ts;
    ncoi_c(t)=cos(2*pi*f0*t1);   %产生频率为f0的cos数控本振(I路),这里产生数控本振的时间间隔与A/D采样间隔相同,便于序列后续相乘。
end
 
for t=1:N
    t1=(t-1)*Ts;
    ncoq_c(t)=sin(2*pi*f0*t1);   %产生频率为f0的sin数控本振(Q路),这里产生数控本振的时间间隔与A/D采样间隔相同,便于序列后续相乘。
end
ncoi=awgn(ncoi_c80);            %对产生的I路本振序列加入80dB的高斯白噪声
ncoq=awgn(ncoq_c80);            %对产生的Q路本振序列加入80dB的高斯白噪声
 
f   =0:fsamp/N:fsamp-fsamp/N;    %f取点从0开始以fsamp/N为步进值直到fsamp-fsamp/N结束
u1  =abs(fft(ncoi));             %对加入高斯白噪声的I路本振信号序列进行FFT后取模
u2  =abs(fft(ncoq));             %对加入高斯白噪声的Q路本振信号序列进行FFT后取模
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Figure2混频器I路输出信号频谱%%%%

评论

共有 条评论