(DUC/DDC)数字上混频/正交下混频原理及matlab仿真

数字上混频、下混频matlab仿真,读者有兴趣的话后面更新FPGA实现代码。

代码中lowpass低通滤波器用matlab内部APP Filter Designer生成,具体配置如下:

仿真运行结果:

 

 

 

 

 

 

 

 

仿真代码:

%%  数字上变频、数字正交下变频仿真
clc;
clear;
close all;

%%  参数设置
T = 20e-6;      %脉宽20us
B = 50e6;      %带宽50M
f0 = 120e6;    % 120M中频
Fs = 960e6;    %1G采样
N = T*Fs;
K = B/T;
t = linspace(-T/2, T/2, N);
F = ((1:N)-1)*Fs/N - Fs/2;

%% DUC 数字上变频
%LFM
sig = exp (-1j*pi*K*(t).^2);

figure;
plot(real(sig)) ;
hold on;
plot(imag(sig)) ;
title('原始信号时域(实部)');

%脉压
coe = exp(1j*pi*K*(t).^2);
len = length (coe);
coe = coe.*hamming(len).';
pc = conv(sig, coe);
figure;
plot(abs(pc));
title('原始信号脉压结果');

figure;
plot(20*log10(abs(pc)/max(abs(pc))));
title('原始信号脉压结果(dB)');

figure;
plot(F/1e6, abs(fftshift(fft(sig))));
xlabel('频率/Mz');
title('基带信号频谱');

%中频
mid_f =exp(1j*2*pi*f0*t);

figure;
plot (F/1e6, abs(fftshift(fft(mid_f))));
xlabel('频率/MHz');
title('中频信号频谱');

%上混频
f_up = sig.*mid_f;
figure;
plot(F/1e6,abs(fftshift(fft(f_up))));
xlabel('频率/MEz');
title('上混频信信号频谱');

%% DDC 数字下变频
%数字正交下混频
mid_f_in = cos(2*pi*f0*t + pi*K*(t).^2);

figure,
plot(F/1e6, abs(fftshift(fft(mid_f_in))));
xlabel('频率/MHz');
title('下混频输入信号频谱');

mif_f_sin = sin(2*pi*f0*t);
mif_f_cos = cos(2*pi*f0*t);

f_down_real = mid_f_in.*-mif_f_sin;
f_down_imag = mid_f_in.*mif_f_cos;
f_down = f_down_real + 1j*f_down_imag;

figure;
plot(F/1e6, abs(fftshift(fft(f_down))));
xlabel('频率/MHz');
title('数字正交下混频信号频谱');

% IQ两路分别进行低通滤波
f_down_new_real = zeros(1,50000);
f_down_new_real(1:length(f_down_real)) = f_down_real;
f_down_new_imag = zeros(1,50000);
f_down_new_imag(1:length(f_down_imag)) = f_down_imag;

%5OM低通滤波器
load lowpass
f_down_lowpass_real = filter(lowpass, 1, f_down_new_real);
f_down_lowpass_imag = filter(lowpass, 1, f_down_new_imag);
f_down_lowpass = f_down_lowpass_real + 1j*f_down_lowpass_imag;

figure;
plot(abs(fftshift(fft(f_down_lowpass))));
% xlabel('频率/MHz');
title('低通滤波信号频谱');

figure;
plot(imag(f_down_lowpass)) ;
hold on;
plot(real(f_down_lowpass));
title('低通滤波信号时域(实部)');

pc = conv(f_down_lowpass, coe);
figure;
plot(abs(pc));
title('低通滤波信号脉压结果');
figure;
plot (20*log10(abs(pc)/max(abs(pc))));
title('低通滤波信号脉压结果(dB)');

  • 5
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Matlab中的DDC(Digital Down Converter)和DUC(Digital Up Converter)是数字信号处理中常用的模块。它们用于将信号转换到不同的频率域,实现数字信号的上变频和下变频。 DDC主要用于将高频信号降低到低频域进行处理。在Matlab中,可以使用Filter Designer应用程序来生成低通滤波器的配置。配置如下: DUC则用于将信号从低频域提升到高频域。关于DUC的设计,可以在Matlab中使用相应的工程文件进行实现。这些文件包括rrc_cic_impulse.mdl、rrc_cic_data.mdl和qpsk_modulate.mdl等等。 总而言之,DDCDUC数字信号处理中的重要模块,用于实现信号的上变频和下变频。在Matlab中,可以通过Filter Designer生成低通滤波器的配置,并使用相应的工程文件进行DUC的设计。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [(DUC/DDC)数字混频/正交混频原理matlab仿真](https://blog.csdn.net/wgm1996/article/details/125323393)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Digital-transfer-DDC-and-DUC.zip_MATLAB DDC DUC_cic_matlab ddc c](https://download.csdn.net/download/weixin_42660494/86213036)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值