news 2026/4/18 7:44:14

MATLAB代码来生成根升余弦滤波器,并绘制其时域和频域特性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MATLAB代码来生成根升余弦滤波器,并绘制其时域和频域特性

根升余弦滤波器完整实现

%% 根升余弦滤波器生成与分析clear all;close all;clc;%% 参数设置Fs=1000;% 采样频率 (Hz)T=1;% 符号周期 (s)sps=10;% 每符号采样点数beta=0.5;% 滚降因子 (0~1)filter_span=6;% 滤波器跨度 (符号数)%% 生成根升余弦滤波器% 方法1: 使用rcosdesign函数 (推荐)h_rc=rcosdesign(beta,filter_span,sps,'sqrt');% 方法2: 手动实现 (备用方法)% t = (-filter_span*T/2 : 1/Fs : filter_span*T/2) + 1e-8; % 避免除零% h_rc_manual = manual_root_raised_cosine(t, T, beta);%% 时域分析t_filter=(-filter_span*sps/2:filter_span*sps/2)/(sps/T);figure('Position',[100,100,1200,800]);% 时域波形subplot(2,3,1);stem(t_filter,h_rc,'b','filled','MarkerSize',4);hold on;plot(t_filter,h_rc,'r-','LineWidth',1.5);grid on;xlabel('时间 (符号周期)');ylabel('幅度');title('根升余弦滤波器时域响应');legend('采样点','包络','Location','best');% 滤波器冲激响应细节subplot(2,3,2);plot(t_filter,h_rc,'b-','LineWidth',2);grid on;xlabel('时间 (符号周期)');ylabel('幅度');title('滤波器冲激响应');xlim([-3,3]);% 眼图模拟subplot(2,3,3);% 生成随机数据并滤波data=randi([01],1,100)*2-1;% BPSK信号upsampled_data=upsample(data,sps);tx_signal=conv(upsampled_data,h_rc,'same');% 绘制眼图plot_eye_diagram(tx_signal,sps,2);title('发射信号眼图');%% 频域分析% 计算频率响应N_fft=1024;H_rc=fftshift(fft(h_rc,N_fft));f=(-N_fft/2:N_fft/2-1)*(Fs/N_fft)/(1/T);% 归一化频率% 幅度响应subplot(2,3,4);plot(f,20*log10(abs(H_rc)/max(abs(H_rc))),'b-','LineWidth',2);grid on;xlabel('归一化频率 (fT)');ylabel('幅度 (dB)');title('根升余弦滤波器幅度响应');xlim([-2,2]);ylim([-80,5]);% 相位响应subplot(2,3,5);phase_response=angle(H_rc);phase_response_unwrapped=unwrap(phase_response);plot(f,phase_response_unwrapped,'r-','LineWidth',2);grid on;xlabel('归一化频率 (fT)');ylabel('相位 (弧度)');title('相位响应');xlim([-2,2]);% 群延迟subplot(2,3,6);group_delay=-diff(phase_response_unwrapped)./diff(f*2*pi);plot(f(1:end-1),group_delay,'g-','LineWidth',2);grid on;xlabel('归一化频率 (fT)');ylabel('群延迟 (样本)');title('群延迟响应');xlim([-2,2]);%% 不同滚降因子的比较figure('Position',[100,100,1000,600]);beta_values=[0.2,0.5,0.8,1.0];colors=['b','r','g','m'];t_compare=(-filter_span*sps/2:filter_span*sps/2)/(sps/T);subplot(1,2,1);hold on;fori=1:length(beta_values)h_temp=rcosdesign(beta_values(i),filter_span,sps,'sqrt');plot(t_compare,h_temp,colors(i),'LineWidth',2,...'DisplayName',['\beta = ',num2str(beta_values(i))]);endgrid on;xlabel('时间 (符号周期)');ylabel('幅度');title('不同滚降因子的时域响应');legend('show');xlim([-3,3]);subplot(1,2,2);hold on;fori=1:length(beta_values)h_temp=rcosdesign(beta_values(i),filter_span,sps,'sqrt');H_temp=fftshift(fft(h_temp,N_fft));f_compare=(-N_fft/2:N_fft/2-1)*(Fs/N_fft)/(1/T);plot(f_compare,20*log10(abs(H_temp)/max(abs(H_temp))),...colors(i),'LineWidth',2,...'DisplayName',['\beta = ',num2str(beta_values(i))]);endgrid on;xlabel('归一化频率 (fT)');ylabel('幅度 (dB)');title('不同滚降因子的频域响应');legend('show');xlim([-2,2]);ylim([-80,5]);%% ISI性能分析figure('Position',[100,100,800,400]);% 测试符号间干扰test_symbols=[0,0,1,0,0];% 单个脉冲test_signal_upsampled=upsample(test_symbols,sps);filtered_signal=conv(test_signal_upsampled,h_rc,'same');% 找到峰值位置[~,peak_idx]=max(filtered_signal);sampling_points=peak_idx:sps:length(filtered_signal);subplot(1,2,1);plot(filtered_signal,'b-','LineWidth',2);hold on;stem(sampling_points,filtered_signal(sampling_points),'ro','filled');grid on;xlabel('采样点');ylabel('幅度');title('单个脉冲的滤波器响应');legend('滤波器输出','采样时刻');% ISI分析 - 采样时刻的值subplot(1,2,2);isi_samples=filtered_signal(sampling_points);stem(0:length(isi_samples)-1,isi_samples,'b','filled');hold on;% 标记主瓣和旁瓣plot([2,2],[0,max(isi_samples)],'r--','LineWidth',1.5);text(2.2,max(isi_samples)*0.8,'主瓣','Color','r');grid on;xlabel('符号索引');ylabel('幅度');title('采样时刻的ISI分析');%% 自定义函数定义functionplot_eye_diagram(signal,samples_per_symbol,num_eyes)% 绘制眼图eye_length=samples_per_symbol*num_eyes;num_segments=floor(length(signal)/eye_length)-1;hold on;fori=1:num_segments start_idx=(i-1)*eye_length+1;end_idx=start_idx+eye_length-1;segment=signal(start_idx:end_idx);time_axis=(0:length(segment)-1)/samples_per_symbol;plot(time_axis,segment,'b-','LineWidth',0.5);endxlabel('时间 (符号周期)');ylabel('幅度');grid on;hold off;endfunctionh=manual_root_raised_cosine(t,T,beta)% 手动计算根升余弦滤波器h=zeros(size(t));fori=1:length(t)t_val=t(i);ifabs(t_val)==T/(4*beta)h(i)=(beta/sqrt(2*T))*...((1+2/pi)*sin(pi/(4*beta))+(1-2/pi)*cos(pi/(4*beta)));elseift_val==0h(i)=(1/sqrt(T))*(1+beta*(4/pi-1));elseterm1=sin(pi*(1-beta)*t_val/T+4*beta*t_val/T*cos(pi*(1+beta)*t_val/T));term2=pi*t_val/T*(1-(4*beta*t_val/T).^2);h(i)=(1/sqrt(T))*term1./term2;endendend%% 滤波器特性总结fprintf('=== 根升余弦滤波器特性总结 ===\n');fprintf('滚降因子 β: %.2f\n',beta);fprintf('滤波器长度: %d 个采样点\n',length(h_rc));fprintf('每符号采样点数: %d\n',sps);fprintf('滤波器跨度: %d 个符号\n',filter_span);% 计算关键参数energy=sum(h_rc.^2);fprintf('滤波器能量: %.4f\n',energy);% 检查奈奎斯特准则sampling_offset=round(length(h_rc)/2)+sps;isi_values=h_rc(sampling_offset:sps:end);isi_power=sum(isi_values.^2)-h_rc(round(length(h_rc)/2))^2;fprintf('ISI功率: %.6f\n',isi_power);

特性分析

1.时域特性

  • 主瓣宽度:与滚降因子β相关
  • 旁瓣衰减:决定符号间干扰(ISI)大小
  • 过零点:在整数倍符号周期处过零,满足奈奎斯特准则

2.频域特性

  • 带宽B = (1 + β) / (2T) Hz
  • 滚降特性:平滑的过渡带
  • 带外抑制:良好的频谱利用率

3.滚降因子影响

  • β较小(0.2-0.3):频谱效率高,但对定时误差敏感
  • β中等(0.4-0.6):平衡频谱效率和抗干扰能力
  • β较大(0.7-1.0):抗干扰能力强,但频谱效率低

参考代码 根升余弦滤波器www.3dddown.com/csa/82526.html

实际应用

  1. 无线通信:常用β=0.35(卫星)或β=0.5(蜂窝)
  2. 有线通信:根据信道特性选择β值
  3. 数字电视:通常使用较小的滚降因子
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:35:42

Apollo红外反射成像在唐卡研究中的应用

Apollo红外反射成像在唐卡研究中的应用在大英博物馆西藏唐卡作品修复中,首先使用了Apollo红外反射成像扫描系统对唐卡在修复之前进行了全面的扫描检测。绘画技法研究:通过Apollo红外反射成像,能观察到唐卡底稿素描,了解绘画时的构…

作者头像 李华
网站建设 2026/4/18 14:04:35

30、加密与哈希概念及公钥基础设施详解

加密与哈希概念及公钥基础设施详解 一、考试准备任务 在学习加密和哈希相关知识时,有一系列的考试准备任务需要完成。 1. 复习关键主题 :要着重复习那些页面外侧有“关键主题”图标标注的内容。以下是关键主题及其所在页码的参考表格: |关键主题元素|描述|页码| | ---…

作者头像 李华
网站建设 2026/4/18 7:13:47

31、网络安全中的证书与协议详解

网络安全中的证书与协议详解 1. 避免单点故障的证书层级架构 为避免如单一证书颁发机构(CA)这样的单点故障问题,可以采用层级方式来组织证书颁发机构。层级结构的顶部是根 CA,其下是提供冗余的从属 CA。虽然证书颁发机构的独占性很常见,但它并非是将公钥绑定到用户的唯一…

作者头像 李华
网站建设 2026/4/18 11:00:29

38、信息安全考试与技术知识全解析

信息安全考试与技术知识全解析 一、学习辅助工具——速查表 为了辅助学习,可以创建一份速查表。以下是速查表的示例部分内容: |概念|具体信息| | ---- | ---- | |常见端口号|Echo—Port 7;CHARGEN—Port 19;FTP—Port 21(需补充所有端口信息)| |访问控制模型|MAC—…

作者头像 李华
网站建设 2026/4/18 8:35:07

Kotaemon虚拟偶像后台引擎:实时互动支撑

Kotaemon虚拟偶像后台引擎:实时互动支撑 在虚拟偶像产业迅速崛起的今天,粉丝不再满足于单向观看演出或阅读设定文案。他们渴望更深层次的连接——一场能记住自己名字、回应个人问题、甚至带点“小脾气”的对话。这种期待背后,是对技术系统前所…

作者头像 李华
网站建设 2026/4/18 10:05:12

使用Kotaemon构建企业级FAQ自动化生成器

使用Kotaemon构建企业级FAQ自动化生成器 在客户咨询量呈指数级增长的今天,企业知识服务正面临一场静默的危机:用户期望秒级响应、精准解答,而传统客服系统还在依赖人工翻阅文档或维护静态FAQ页面。更棘手的是,新产品上线、政策变更…

作者头像 李华