欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于tms320vc5509-dsp的语音信号的fir滤波器课程毕业设计报告书.doc

    • 资源ID:86823324       资源大小:287.50KB        全文页数:30页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于tms320vc5509-dsp的语音信号的fir滤波器课程毕业设计报告书.doc

    DSP原理与应用 课程设计报告书课题名称基于TMS320VC5509 DSP的语音信号的FIR滤波器姓 名学 号 院、系、部专 业指导教师 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日基于TMS320VC5509 DSP的语音信号的FIR滤波器设计一、实践的目的和要求 1.熟悉ICETEK-VC5509-A板上语音codec芯片TLV320AIC23的设计和程序控制原理。2.熟悉FIR滤波器工作原理及编程。3.掌握使用TI的算法库dsplib提高程序运行效率的方法。4.学习使用CCS图形观察窗口观察和分析语音波形及其频谱。二、实践原理: 在数字信号处理中,滤波占有极其重要的地位。数字滤波是语音处理、图像处理、模式识别、频谱分析等应用中的基本处理算法。用DSP芯片实现数字滤波除了具有稳定性好、精确度高、不受环境影响等优点外,还具有灵活性好等特点。 VC5509引脚图过渡带宽度=阻带边缘频宽-通带边缘频率采样频率:f1=通带边缘频率+(过渡带宽度)/2理想低通滤波器脉冲响应:h1n=sin(n1)/n/根据要求,选择布莱克曼窗,窗函数长度为:N=5.98fs/过渡带宽度选择N=30wn=0.42+0.5cos(2n/30)+0.8cos(4n/24)滤波器脉冲响应为:hn=h1nwn|n|<=12hn=0|n|>12根据上面计算,各式算出hn,然后将脉冲响应值移位为因果序列。完成的滤波器的差分方程为:yn=-0.001xn-2-0.002xn-3-0.002xn-4+0.01xn-5-0.009xn-6-0.018xn-7-0.049xn-8-0.02xn-9+0.11xn-10+0.28xn-11+0.64xn-12+0.28xn-13-0.11xn-14-0.02xn-15+0.049xn-16-0.018xn-17-0.009xn-18+0.01n-19-0.002xn-20-0.002xn-21+0.001xn-22开始初始化:EMIF、CPU频率、AIC23调用AIC23_Mixer子程序处理音频数据输入/输出开始初始化语音缓冲区和工作变量等待McBSP通道0传送结束读取语音数据保存于左声道缓冲区调用fir2计算FIR滤波输出滤波结果保存于右声道缓冲区原声音送左声道,滤波结果送右声道,输出到McBSP0三、实践步骤1.首先自己参照指导书完语音信号的FIR滤波实验,认真阅读实验中的源程序,深刻理解语音信号FIR滤波的原理及具体实现方法,包括含噪语音信号的读取,滤波后信号的输出,语音编解码器的设置(AIC23),重点理解FIR滤波器的实现(循环寻找的实现)2.语音采集的采集与分析 (1)录制语音,并命名为“e”,保存在相应的位置(桌面)。(2)用MATLAB对原始语音信号进行分析,画出它的时域波形和频谱。程序如下:fs=22050;x,fs,Nbits=wavread('C:Documents and SettingsOwner桌面e');t=0:1/22050:(length(x)-1)/22050;sound(x,fs) ; %对加载的语音信号进行回放figure(1)plot(x) %做原始语音信号的时域图形title('原始语音信号');xlabel('time n');ylabel('fuzhi n');figure(2)freqz(x) %绘制原始语音信号的频率响应图title('频率响应图')n=length(x); %求出语音信号的长度y1=fft(x,n) ; %傅里叶变换y2=fftshift(y1); %对频谱图进行平移f=0:fs/n:fs*(n-1)/n; %得出频点figure(3) subplot(2,1,1);plot(abs(y2) %做原始语音信号的FFT频谱图title('原始语音信号FFT频谱')subplot(2,1,2);plot(f,abs(y2); %绘制原始语音信号的频谱图title('原始语音信号频谱')%加噪声k=1:1:n; %定义k 值,噪声与原始语音长度一致c1=100000*sin(2*pi*5000*k); %噪声信号的函数z=x'+c1; %噪音与原始信号叠加wavwrite(z,8000,16,'C:Documents and SettingsOwner桌面e2'); %得到含噪语音s=length(c1);y3=fft(z,s); %对叠加信号进行频谱变换y4=fftshift(y3); %对频谱图平移f=0:fs/s:fs*(s-1)/s; %得出频点figure(4)plot(z) %做原始语音信号的时域图形title('加噪语音信号');xlabel('time n');ylabel('fuzhi n');figure(5)plot(f,abs(y4); %绘出加噪语音频谱图axis(0 8000 0 100);title('含噪语音信号的频谱');figure(6)subplot(2,1,1);plot(f,abs(y2) %做原始语音信号的FFT频谱图title('原始语音信号FFT频谱')subplot(2,1,2);plot(f,abs(y4) %做加噪语音信号的FFT频谱图title('加噪语音信号频谱') 原始语音信号 加噪语音信号 原始语音信号FFT频谱 含噪语音信号频谱 原始语音信号FFT频谱 频率响应图3. 设计一定参数的滤波器使用fir2函数设计一个31阶低通滤波器,信号的采样频率为8000Hz,滤波器的通带截止频率为2900Hz,阻带截止频率为3300Hz。在函数中,其截止频率均用归一化频率表示。归一化频率的计算方法:f=实际频率/(采样频率/2),则将截止频率归一化后的截止频率值为0.725、0.825用fir2函数实现的格式:f = 0 0.725 0.825 1 ; m = 1 1 0 0 ; b=fir2(30,f,m);b= -0.0005,0.0004,0.0003,-0.0018,0.0039,-0.0045,0.0009,0.0086,-0.0210,0.0279,-0.0173,-0.0191,0.0793,-0.1486,0.2043,0.7744,0.2043,-0.1486,0.0793,-0.0191,-0.0173,0.0279,-0.0210,0.0086,0.0009,-0.0045,0.0039,-0.0018,0.0003,0.0004,-0.0005Audio滤波程序如下:#include "myapp.h"#include "ICETEK-VC5509-EDU.h"#include "scancode.h"#include <math.h>#define FIRNUMBER 31#define SIGNAL1F 2900#define SIGNAL2F 3300#define SAMPLEF 8000#define PI 3.1415926float InputWave();float FIR();float fHnFIRNUMBER=-0.0005,0.0004,0.0003,-0.0018,0.0039,-0.0045,0.0009,0.0086,-0.0210,0.0279,-0.0173,-0.0191,0.0793,-0.1486,0.2043,0.7744,0.2043,-0.1486,0.0793,-0.0191,-0.0173,0.0279,-0.0210,0.0086,0.0009,-0.0045,0.0039,-0.0018,0.0003,0.0004,-0.0005;float fXnFIRNUMBER= 0.0 ;float fInput,fOutput;float fSignal1,fSignal2;float fStepSignal1,fStepSignal2;float f2PI;int i;float fIn256,fOut256;int nIn,nOut;main()nIn=0; nOut=0;f2PI=2*PI;fSignal1=0.0;fSignal2=PI*0.1;fStepSignal1=2*PI/30;fStepSignal2=2*PI*1.4;while ( 1 )fInput=InputWave();fInnIn=fInput;nIn+; nIn%=256;fOutput=FIR();fOutnOut=fOutput;nOut+;/* break point */if ( nOut>=256 )nOut=0;float InputWave()for ( i=FIRNUMBER-1;i>0;i- )fXni=fXni-1;fXn0=sin(double)fSignal1)+cos(double)fSignal2)/6.0;fSignal1+=fStepSignal1; if ( fSignal1>=f2PI )fSignal1-=f2PI;fSignal2+=fStepSignal2;if ( fSignal2>=f2PI )fSignal2-=f2PI;return(fXn0);float FIR()float fSum;fSum=0;for ( i=0;i<FIRNUMBER;i+ )fSum+=(fXni*fHni);return(fSum);语音信号的FIR滤波程序#include "5509.h"#include "util.h"#include "audio.h"/ AIC23 Control Register addresses#define AIC23_LT_LINE_CTL 0x00 / 0#define AIC23_RT_LINE_CTL 0x02 / 1#define AIC23_LT_HP_CTL 0x04 / 2#define AIC23_RT_HP_CTL 0x06 / 3#define AIC23_ANALOG_AUDIO_CTL 0x08 / 4#define AIC23_DIGITAL_AUDIO_CTL 0x0A / 5#define AIC23_POWER_DOWN_CTL 0x0C / 6#define AIC23_DIGITAL_IF_FORMAT 0x0E / 7#define AIC23_SAMPLE_RATE_CTL 0x10 / 8#define AIC23_DIG_IF_ACTIVATE 0x12 / 9#define AIC23_RESET_REG 0x1E / F - Writing 0 to this reg triggers reset/ AIC23 Control Register settings#define lt_ch_vol_ctrl 0x0017 /* 0 */#define rt_ch_vol_ctrl 0x0017 /* 1 */#define lt_ch_headph_ctrl 0x0079 /* 2 */#define rt_ch_headph_ctrl 0x0079 /* 3 */#define alog_au_path_ctrl 0x0000 /* 4 */#define digi_au_path_ctrl 0x0000 /* 5 */#define pow_mgt_ctrl_ctrl 0x0002 /* 6 */#define digi_au_intf_ctrl 0x000D /* 7 */#define au_FS_TIM_ctrl 0x0000 /* 8 MCLK=12MHz, Sample Rate setting */#define digi_intf1_ctrl 0x0001 /* 9 */#define digi_intf2_ctrl 0x00FF /* 10 */#define DIGIF_FMT_MS 0x40#define DIGIF_FMT_LRSWAP 0x20#define DIGIF_FMT_LRP 0x10#define DIGIF_FMT_IWL 0x0c#define DIGIF_FMT_FOR 0x03#define DIGIF_FMT_IWL_16 0x00#define DIGIF_FMT_IWL_20 0x04#define DIGIF_FMT_IWL_24 0x08#define DIGIF_FMT_IWL_32 0xc0#define DIGIF_FMT_FOR_MSBRIGHT 0x00#define DIGIF_FMT_FOR_MSLEFT 0x01#define DIGIF_FMT_FOR_I2S 0x02#define DIGIF_FMT_FOR_DSP 0x03#define POWER_DEV 0x80#define POWER_CLK 0x40#define POWER_OSC 0x20#define POWER_OUT 0x10#define POWER_DAC 0x08#define POWER_ADC 0x04#define POWER_MIC 0x02#define POWER_LINE 0x01#define SRC_CLKOUT 0x80#define SRC_CLKIN 0x40#define SRC_SR 0x3c#define SRC_BOSR 0x02#define SRC_MO 0x01#define SRC_SR_44 0x20#define SRC_SR_32 0x18#define SRC_SR_8 0x0c#define ANAPCTL_STA 0xc0#define ANAPCTL_STE 0x20#define ANAPCTL_DAC 0x10#define ANAPCTL_BYP 0x08#define ANAPCTL_INSEL 0x04#define ANAPCTL_MICM 0x02#define ANAPCTL_MICB 0x01 #define DIGPCTL_DACM 0x08#define DIGPCTL_DEEMP 0x06#define DIGPCTL_ADCHP 0x01#define DIGPCTL_DEEMP_DIS 0x00#define DIGPCTL_DEEMP_32 0x02#define DIGPCTL_DEEMP_44 0x04#define DIGPCRL_DEEMP_48 0x06#define DIGIFACT_ACT 0x01#define LT_HP_CTL_LZC 0x80#define RT_HP_CTL_RZC 0x80void AIC23_Write(unsigned short regaddr, unsigned short data) unsigned char buf2; buf0 = regaddr; buf1 = data; I2C_Write(I2C_AIC23, 2, buf);void McBSP0_InitSlave() PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR; / Put the MCBSP in reset Write(pMCBSP0 -> spcr1, 0); Write(pMCBSP0 -> spcr2, 0); / Config frame parameters (32 bit, single phase, no delay) Write(pMCBSP0 -> xcr1, XWDLEN1_32); Write(pMCBSP0 -> xcr2, XPHASE_SINGLE | XDATDLY_0); Write(pMCBSP0 -> rcr1, RWDLEN1_32); Write(pMCBSP0 -> rcr2, RPHASE_SINGLE | RDATDLY_0); / Disable int frame generation and enable slave w/ext frame signals on FSX / Frame sync is active high, data clocked on rising edge of clkx Write(pMCBSP0 -> pcr, PCR_CLKXP); / Bring transmitter and receiver out of reset SetMask(pMCBSP0 -> spcr2, SPCR2_XRST); SetMask(pMCBSP0 -> spcr1, SPCR1_RRST); void AIC23_Init() I2C_Init(); / Reset the AIC23 and turn on all power AIC23_Write(AIC23_RESET_REG, 0); AIC23_Write(AIC23_POWER_DOWN_CTL, 0); AIC23_Write(AIC23_ANALOG_AUDIO_CTL, ANAPCTL_DAC | ANAPCTL_INSEL);/ 使用麦克风音源 AIC23_Write(AIC23_DIGITAL_AUDIO_CTL, 0); / Turn on volume for line inputs AIC23_Write(AIC23_LT_LINE_CTL,0x000); AIC23_Write(AIC23_RT_LINE_CTL,0x000); / Configure the AIC23 for master mode, 44.1KHz stereo, 16 bit samples / Use 12MHz USB clock AIC23_Write(AIC23_DIGITAL_IF_FORMAT, DIGIF_FMT_MS | DIGIF_FMT_IWL_16 | DIGIF_FMT_FOR_DSP); AIC23_Write(AIC23_SAMPLE_RATE_CTL, SRC_SR_44 | SRC_BOSR | SRC_MO); / Turn on headphone volume and digital interface AIC23_Write(AIC23_LT_HP_CTL, 0x07f); / 0x79 for speakers AIC23_Write(AIC23_RT_HP_CTL, 0x07f); AIC23_Write(AIC23_DIG_IF_ACTIVATE, DIGIFACT_ACT); / Set McBSP0 to be transmit slave McBSP0_InitSlave();void AIC23_Disable() PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR; I2C_Disable(); / Put the MCBSP in reset Write(pMCBSP0 -> spcr1, 0); Write(pMCBSP0 -> spcr2, 0);#define AUTIODATALEFT 0x0d000#define AUTIODATARIGHT 0x17000int *pAudioLeft,*pAudioRight;int www=0; void AIC23_Mixer() PC55XX_MCSP pMCBSP0 = (PC55XX_MCSP)C55XX_MSP0_ADDR; int left, right; int *pl,*pr,nAudioCount; int i;pAudioLeft=pl=(int *)AUTIODATALEFT;pAudioRight=pr=(int *)AUTIODATARIGHT;nAudioCount=0; for ( i=0;i<NX;i+) xi=0; for ( i=0;i<NH+2;i+) dbi=0; while(1) while (!ReadMask(pMCBSP0 -> spcr2, SPCR2_XRDY);/ 等待数据传输完成 (*pl)=left = Read(pMCBSP0 -> ddr1);/ 读入左声道数据 right = Read(pMCBSP0 -> ddr2);/ 读入右声道数据 xNX-1=left/16;/ 防止滤波时数据溢出 fir2(x, h, r, db, NX, NH);/ 调用滤波程序计算当前输出(*pr)=rNX-1;/ 数组r的最后一个单元为当前输出 Write(pMCBSP0 -> dxr1, left);/ 将原始数据送左声道输出 /Write(pMCBSP0 -> dxr1, rNX-1);/ 将原始数据送左声道输出 Write(pMCBSP0 -> dxr2, rNX-1);/ 将经过滤波后数据送右声道输出 nAudioCount+; pl+; pr+;/ 循环使用缓冲区 if ( nAudioCount>=1024 ) nAudioCount=0;/ break point pl=pAudioLeft; pr=pAudioRight; for ( i=0;i<NX-1;i+ )/ 重新调整输入序列(供fir2使用) xi=xi+1; 语音信号FIR滤波: 状态1状态2四 、心得体会通过一星期的课程设计,我了解了FIR滤波器的原理和实验的内容以及需要注意的地方,了解了基本的过程。通过硬件和软件的链接完成本次实验。进一步认识了CCStudio软件的使用,了解了各种窗函数对滤波器特性的影响。这一学期的理论知识学习,加上这次课程设计,我对DSP这门学科有了更为深刻的了解,掌握了DSP的硬件操作、软件分析和编程技巧。对以后的实际工作的应用提供了有力的基础。总之,只有大量的实践才能更深层次的了解这类软件,熟练的运用其功能。对数字信号的处理功能,硬软件相结合,语音的压缩、去噪和编码等等方面都有了很深的了解。相信本次课程设计,无论是对我以后的学习,还是工作等方面都有一个很大的帮助。因此,本次课程设计我受益匪浅。参考文献:1.教 材:自编教材,DSP原理实验及课程设计指导书2.参考书:DSP技术的发展与应用,彭启琮编著,高等教育出版社,2002年第1版DSP控制器原理及应用,宁改娣、杨拴科编著,科学出版社,2002年第1版。学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下进行的研究工作所取得的成果。尽我所知,除文中已经特别注明引用的内容和致谢的地方外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明并表示感谢。本人完全

    注意事项

    本文(基于tms320vc5509-dsp的语音信号的fir滤波器课程毕业设计报告书.doc)为本站会员(教****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开