matlab混频器的实现

一、混频器简介

混频器是输出信号频率等于两输入信号频率之和、差或为两者其他组合的电路。

二、Matlab代码

实现功能:将两个输入的500kHz的信号混频输出1000kHz并滤除直流分量的正弦信号输出

%设置系统参数
fi=500000;              %输入信号频率
fc=500000;              %本振信号的频率
Fs=5000000;             %采样频率
L=1024;                 %数据长度
N=10;                   %量化位数
%产生输入信号
t=0:1/Fs:(1/Fs)*(L-1);  %产生采样频率的时间序列
theta=rand()*2*pi;      %产生一个随机相位角度
si=sin(2*pi*fi*t+theta);%生成具随机起始相位的正弦波输入信号
si=round(si*(2^(N-1)-1));%10bit量化
%产生本振信号
sc=sin(2*pi*fc*t);      %生成本振信号
sc=round(sc*(2^(N-1)-1));%10bit量化
%仿真混频输出并画图
so=si.*sc;               %混频器输出
sof=so-mean(so);        %混频器滤除直流分量后输出
fso=abs(fft(so,L));     %求FFT变换的幅度值
%归一化处理
sc=sc/max(abs(sc));
si=si/max(abs(si));
so=so/max(abs(so));
sof=sof/max(abs(sof));
fso=fso/max(fso);
%转换成相对于原点对称的信号
fso=[fso(L/2+1:L),fso(1:L/2)];      %画图
m=[-L/2:1:(L/2-1)]*Fs/L*(10^(-6));  %生成频率坐标轴,单位为MHz
t=t*(10^6);                         %生成时间坐标轴,单位为us
subplot(221);plot(t(1:32),si(1:32));
xlabel('时间/us');ylabel('幅度');
title('10bit量化后的输入信号(a)','fontsize',8);
subplot(222);plot(t(1:32),so(1:32));
xlabel('时间/us');ylabel('幅度');
title('20bit量化后的混频输出信号(b)','fontsize',8);
subplot(223);plot(t(1:32),sof(1:32));
xlabel('时间/us');ylabel('幅度');
title('滤除直流分量后的混频输出信号(c)','fontsize',8);
subplot(224);plot(m,fso);
xlabel('频率/MHz');ylabel('幅度');
title('混频输出信号的幅频响应(d)','fontsize',8);

三、波形仿真

在这里插入图片描述

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值