




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 武漢理工大學信息處理課群綜合訓練與設計課程設計說明書信息處理課群綜合訓練與設計任務書學生姓名: 專業(yè)班級: 通信1304 指導教師: 工作單位: 信息學院 題 目: 基于RLS 算法的多麥克風降噪 初始條件:Matlab軟件、信號與系統(tǒng)、通信處理等要求完成的主要任務: (包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)設計任務:給定主麥克風錄制的受噪聲污染的語音信號和參考麥克風錄制的噪聲,實現(xiàn)語音增強的目標,得到清晰的語音信號。設計的要求:(1)閱讀參考資料和文獻,明晰算法的計算過程,理解RLS算法基本過程;(2)主麥克風錄制的語音信號是RLSprimsp.wav,參考麥克風錄制的
2、參考噪聲是RLSrefns.wav,用matlab指令讀??;(3)根據(jù)算法編寫相應的MATLAB程序;(4)算法仿真收斂以后,得到增強的語音信號;(5)用matlab指令回放增強后的語音信號;(6)分別對增強前后的語音信號作頻譜分析。參考書:1 劉泉,信號與系統(tǒng), 高等教育出版社, 2006年。2 劉泉,數(shù)字信號處理,電子工業(yè)出版社,2008年。3 Edward W. Kamen, Bonnie S.Heck 編,信號與系統(tǒng)基礎應用Web 和MATLAB(第二版),科學出版社,2002 年。時間安排:序號設 計 內 容所用時間1根據(jù)設計任務,分析電路原理,確定實驗方案2天2根據(jù)實驗條件進行電路
3、的測試,并對結果進行分析7天3撰寫課程設計報告1天合 計2周指導教師簽名: 年 月 日系主任(或責任教師)簽名: 年 月 日目 錄 摘要IAbstractII1 緒論12 信號處理基本原理22.1自適應濾波器組成22.2自適應濾波原理22.3RLS算法基本原理33 方案設計63.1最小二乘算法RLS算法實現(xiàn)63.2 RLS算法程序程序設計84 RLS算法濾波方案實現(xiàn)94.1信號的獲取94.2讀取語音文件94.3RLS算法實現(xiàn)94.4提取語音信號105仿真結果與分析135.1原始音頻信號135.2麥克風主語音信號145.3噪聲語音信號155.4降噪后語音信號165.5信號處理分析175.5.1原
4、始語音信號與主語音信號分析175.5.2主語音信號與降噪后語音信號分析185.5.3原始語音信號與降噪后語音信號分析196心得體會20參考文獻21附錄 源程序22摘要本次課程設計要求使用MATLAB軟件,運用自適應濾波中的RLS算法實現(xiàn)麥克風降噪。旨在培養(yǎng)我們使用計算機處理龐大的數(shù)據(jù)的能力和熟悉MATLAB在信息技術中的應用。自適應濾波器是統(tǒng)計信號處理的一個重要組成部分。在實際應用中,有可能沒有足夠的信息來設計濾波器,而RLS算法可以通過前一時刻的濾波器參數(shù),根據(jù)估計誤差自動調節(jié)現(xiàn)時刻的參數(shù),使某代價函數(shù)最小,達到濾波最佳。本文著重介紹RLS算法原理以及它的編程實現(xiàn),最后利用RLS算法實現(xiàn)了單
5、通道的自適應噪聲消除。經調試編譯,得到降噪后的語音信號以及增強前后語音信號波形及頻譜,最終成功實現(xiàn)基于RLS的語音降噪。關鍵詞:MATLAB,自適應濾波,RLS算法,麥克風降噪AbstractThis course design requires the use of MATLAB software, and using the RLS adaptive filter algorithm to realize the microphone noise reduction. Aims to cultivate the ability to deal with huge data we use t
6、he computer and familiar with MATLAB in the application of information technology.Adaptive filter is an important component of statistical signal processing. In practice, there may not have enough information to design filter, and a moment before the adoption of the RLS algorithm can filter paramete
7、rs, according to the estimation error automatically adjust the parameters of the moment, make a cost function minimum, to obtain good filtering. This paper introduces the principle of RLS algorithm and its programming, finally using RLS algorithm has realized the single channel adaptive noise cancel
8、lation.The debug compilation, after get noise speech signal and enhance speech signal waveform and spectrum before and after, finally to achieve voice noise reduction based on RLS.Keywords: MATLAB, adaptive filter, RLS algorithm, microphone noise reduction III1 緒論在數(shù)字信號處理中除噪是一個非常重要的問題,對噪聲環(huán)境中系統(tǒng)工作
9、的穩(wěn)定性有著很大的影響。隱藏在有用信號中的背景噪聲往往是非平穩(wěn)且隨時間變化的,信號和噪聲的統(tǒng)計特性往往無法知曉,而且背景噪聲中的有用信號往往微弱而不穩(wěn)定,此時采用傳統(tǒng)方法很難解決噪聲環(huán)境中的信號提取問題。近年來自適應噪聲消除系統(tǒng)成為消除噪聲的研究熱點,利用自適應濾波器具有在未知環(huán)境下良好運行并跟蹤輸入統(tǒng)計量隨時間變化的能力,通過不斷調整抽頭權系數(shù)來適應發(fā)生變化的信號和噪聲的統(tǒng)計特性,達到消除噪聲干擾的目的。自適應濾波技術技術可以用來檢測平穩(wěn)的和非平穩(wěn)的隨機信號。自適應數(shù)字系統(tǒng)具有很強的自學習,自跟蹤能力和算法的簡單易實現(xiàn)性,它在噪聲信號的檢測增強,噪聲干擾的抵消,波形編碼的線性預測,雷達聲納系
10、統(tǒng)的陣列處理和波束形成,通信系統(tǒng)的自適應分割,以及未知系統(tǒng)的自適應參數(shù)辨識等方面獲得了廣泛的應用。本次課程設計的題目為基于RLS的多麥克風語音降噪,主要是對給定主麥克風錄制的受噪聲污染的語音信號和參考麥克風錄制的噪聲,實現(xiàn)語音增強的目標,得到清晰的語音信號。2 信號處理基本原理2.1自適應濾波器組成自適應濾波器通常由兩部分組成,其一是濾波子系統(tǒng),根據(jù)它所要處理的功能而往往有不同的結構形式。另一是自適應算法部分,用來調整濾波子系統(tǒng)結構的參數(shù),或濾波系數(shù)。在自適應調整濾波系數(shù)的過程中,有不同的準則和算法。算法是指調節(jié)自適應濾波系數(shù)的步驟,以達到在所描述準則下的誤差最小化。自適應濾波器含有兩個過程,
11、即自適應過程與濾波過程。前一過程的基本目標是調節(jié)濾波系數(shù)(k),使有意義的目標函數(shù)或代價函數(shù)F(·)最小化,濾波器輸出信號y(n)逐步逼近所期望的參考信號d(n),由兩者之間的估計誤差e(n)驅動某種算法對濾波(權)系數(shù)進行調整,使濾波器處于最佳工作狀態(tài)以實現(xiàn)濾波過程。但是,由于目標函數(shù)F(·)是輸入信號x(k)、參考信號d(k)及輸出信號y(k)的函數(shù),即F(·)=Fx(k),d(k),y(k),因此目標函數(shù)必須具有以下兩個性質:(1)非負性(2)最佳性2.2自適應濾波原理 自適應濾波器與普通濾波器有兩個重要區(qū)別:(1)自適應濾波器的濾波參數(shù)是可變的,它能夠隨著
12、外界信號特性的變化而動態(tài)地改變參數(shù),保持最佳濾波狀態(tài)。自適應濾波器除了普通濾波器的硬件設備以外還有軟件部分,即自適應算法。(2)自適應算法決定了自適應濾波器如何根據(jù)外界信號的變化來調整參數(shù)。自適應算法的好壞直接影響濾波的效果。 所謂的自適應濾波,就是利用前一時刻以獲得的濾波器參數(shù)的結果,自動的調節(jié)現(xiàn)時刻的濾波器參數(shù),以適應信號和噪聲未知的或隨時間變化的統(tǒng)計特性,從而實現(xiàn)最優(yōu)濾波。自適應濾波器實質上就是一種能調節(jié)其自身傳輸特性以達到最優(yōu)的維納濾波器。自適應濾波器不需要關于輸入信號的先驗知識,計算量小,特別適用于實時處理。 自適應濾波器的特性變化是由自適應算法通過調整濾波器系數(shù)來實現(xiàn)的。一般而言,
13、自適應濾波器由兩部分組成,一是濾波器結構,二是調整濾波器系數(shù)的自適應算法。圖 2-2 給出了自適應濾波器的一般結構,圖中為期望響應,為自適應濾波器的輸入,為自適應濾波器的輸出,e(n)為估計誤差。自適應濾波器的濾波器系數(shù)受誤差信號控制,根據(jù)的值和自適應算法自動調整。由于自適應濾波器在未知或時變系統(tǒng)中的明顯優(yōu)勢,它在眾多領域得到廣泛應用。 圖2-2 自適應濾波原理圖2.3 RLS算法基本原理所謂自適應實現(xiàn)是指利用前一時刻獲得的濾波器參數(shù),根據(jù)估計誤差自動調節(jié)現(xiàn)時刻的參數(shù),使得某個代價函數(shù)達到最小,從而實現(xiàn)最優(yōu)濾波。 (公式1) 下降算法:最廣泛使用的自適應算法包括自適應梯度算法(LMS)、自適應
14、高斯-牛頓算法(RLS)。RLS算法:(Recursive Least-Squares),遞歸最小二乘算法。它是利用在已知n-1時濾波器抽頭權系數(shù)的情況下,通過簡單的更新,求出n時刻的濾波器抽頭權系數(shù)。代價函數(shù):使用指數(shù)加權的誤差平方和 (公式2) (0<<1,稱為遺忘因子)引入遺忘因子作用是離n時刻近的誤差附較大權重, 離n時刻遠的誤差賦較小權重,確保在過去某一段時間的觀測數(shù)據(jù)被“遺忘”,從而使濾波器可以工作在非平穩(wěn)狀態(tài)下。估計誤差定義: (公式3) (公式4)可取濾波器的實際輸入d*(i)作為期望響應d(i)。將誤差代入代價函數(shù)得到加權誤差平方和的完整表達式: (公式5) 抽頭
15、權向量取的是n時刻的w(n)而不是i時刻的w(i)。i<=n時刻, (公式6) (公式7)故代價函數(shù)比更合理。為了使代價函數(shù)取得最小值,可通過對權向量求導: (公式8) 解得 其中 (公式9) (公式10) 由此可見指數(shù)加權最小二乘法的解轉化為Wiener濾波器的形式:下面研究它的自適應更新過程:由公式9可得 令、原式可化為 由矩陣求逆引理得 令,則,其中k(n)為增益向量。 (公式11)又由式中 3 方案設計3.1最小二乘算法RLS算法實現(xiàn)圖3-1自適應橫向濾波器結構框圖自適應橫向濾波器有兩路輸入,一為輸入信號x(n),含有樣本x(1),x(2),x(N);另一為期望信號序列為d(n)
16、,含有樣本d(1),d(2),d(N)如圖2所示。濾波器濾波系數(shù)是對延遲線抽頭信號加權的系數(shù)w1(n),w2(n),w3(n),Wm (n),實質上,這也是濾波器的沖激響應序列。這里濾波器長度M必須低于或等于信號數(shù)據(jù)長度n。濾波器輸出信號y(n)等于輸入信號x(n)與沖激響應序列Wi (n)的卷積和,如式。 誤差信號為,由此得到自適應橫向濾波器按最小平方準則設計的代價函數(shù): 將代入式中,展開得: 式中,MN。簡短的表示濾波器的代價函數(shù),將上式有關項定義為以下參數(shù):(1)確定性相關函數(shù)表示輸入信號在抽頭k與抽頭m之間兩信號的相關性, (2)確定性互相關函數(shù)表示期望響應與在抽頭k輸入型號之間的互相
17、關性: (3)期望響應序列的能量為: 將上述定義的三個參數(shù)代入式中,得: 為了估算濾波器的最佳濾波系數(shù),把式對濾波系數(shù)(權系數(shù))微分一次,并令其導數(shù)等于0: 得: 這是最小二乘法自適應濾波的正則方程。RLS遞推計算公式為:式中為增益矢量,它等于相關矩陣的逆矩陣與延遲線抽頭輸入陣的乘積。是真正的估計誤差,它等于:自適應遞歸最小二乘算法的信號流程圖如圖3-2: 圖3-2 RLS算法信號流程圖3.2 RLS算法程序程序設計在理解RLS算法的基本原理后,我決定自行編寫RLS算法程序塊,RLS算法可以理解為將輸出反饋給濾波器來調整相關參數(shù),達到校正誤差的目的。算法實現(xiàn)模塊代碼如下所示:Worder=32
18、; %濾波器階數(shù)lambda=1 ;
19、 % 設置遺忘因子Delta=0.001 ; p=(1/Delta) * eye ( Worder,Worder ) ; w=zeros(Worder,1);
20、output=primary; %主語音輸出loopsize=max(size(primary); for i=1+Worder:loopsize
21、; %寫RLS算法公式 z=primary(i)-w'*(fref(i-Worder+1:i)' n2=fref(i-Worder+1:i)' k=(1/lambda)*p*n2; K=k/(1+n2'*k); w = w + K*z; p0=K*n2'
22、60; p= (p-p0*p)/lambda; output(i-Worder)=z; disp(i);end; 4 RLS算法濾波方案實現(xiàn)4.1信號的獲取本次課程設計對我們自行處理和靈活運用的能力提出了很高的要求。首先,老師沒有給我們提供設計中所需要用到的語音信號;其次,怎樣錄制噪聲和被噪聲污染的語音信號也是一個很現(xiàn)實的問題。所以我選擇自己從網(wǎng)上下載了一段簡短的wav格式的音頻,然后用randn(length(source),1)函數(shù)將其打亂作為噪聲,記做RLSrefns.wav。將這兩段語音信號疊加并保存下來記做RLSprimsp
23、.wav。4.2讀取語音文件主麥克風錄制的語音信號是RLSprimsp.wav,參考麥克風錄制的參考噪聲是RLSrefns.wav,都是.wav格式,用waveread指令讀取音頻信號;指令寫為如下:primary = wavread('RLSprimsp.wav'); primary = primary'ref = wavread('RLSrefns.wav'); fref = fref'4.3RLS算法實現(xiàn)RLS算法的收斂特性較LMS算法優(yōu)越,但相應的復雜度也要高許多,考慮到收斂時間的影響,從起始時間到收斂時間經濾波器處理得到到輸出誤差依然很
24、大,故直接將前32項去掉,先通過兩輸入作差得到預期值,再將所有預期值與對應時刻的實際輸出值作差求平方,將這些平方值相加可以得到一個變量為W的函數(shù),取W是函數(shù)的值最小。另外,顯然距離n最近的量與Y(n)最接近,引入遺忘因子使得從n-1到0,相關程度逐漸減小。最后求得相關偏差,反饋給濾波器以矯正輸出,達到減小誤差的目的。% 初始化Worder=32;
25、 %濾波器階數(shù)lambda=1 ; % 設置遺忘因子Delta=0.001 ;
26、160; p=(1/Delta) * eye ( Worder,Worder ) ; w=zeros(Worder,1);output=primary;
27、60; %主語音輸出loopsize=max(size(primary); for i=1+Worder:loopsize %RLS算法設計 u=fref(i-Worder+1:i)' y= w'*u e=primary(i)-y; k=(p*u)/(lambda+u'*p*u); w = w + k*e; p= (p-k*u'*p)/lambda; output(i-Wor
28、der)=e; disp(i);end;4.4提取語音信號用MATLAB中的wavread指令分別讀取被噪聲污染后的語音文件RLSprimsp.wav和噪聲文件RLSrefns.wav后,進行RLS算法處理,濾除噪聲后,得到語音文件,先由plot指令繪出語音文件波形,再用Y=fft()函數(shù)求出頻譜,由plot指令繪出語音文件頻譜圖,然后通過MATLAB中的sound命令播放語音文件。代碼如下所示:figure;source,fs,bits=wavread('Audio.wav'); %fs表示采樣頻率,bits表示采樣位數(shù)subplot(2,4,1)plot(source);
29、%畫出原音波形title('原音波形')source1=fft(source,length(source);subplot(2,4,5);plot(abs(source1); %畫出原音頻譜 title('原音頻譜')%axis(0 8000 0 80);y1,Fs1,bits1=wavread('RLSprimsp.wav');subplot(2,4,2)plot(y1) %畫出麥克風主語音波形title('麥克風主語音波形');Y1=fft(y1,length(y1);subplot(2,4,6); plot(abs(Y1);
30、 %畫出麥克風主語音頻譜title('麥克風主語音輸入頻譜');%axis(0 8000 0 80);subplot(2,4,3); plot(fref); %畫出噪聲語音波形title('噪聲語音波形');y2,Fs2,bits2=wavread('RLSrefns.wav');Y2=fft(y2,length(y2);subplot(2,4,7); plot(abs(Y2); %畫出噪聲語音頻譜title('噪聲語音頻譜');subplot(2,4,4); plot(output); %畫降噪后的語音波形title('
31、降噪后的語音波形');wavwrite(output,fs,'asd') %生成降噪后的語音y,Fs3,bits3=wavread('asd.wav');Y=fft(y,length(y);subplot(2,4,8);plot(abs(Y); %畫出降噪后語音頻譜title('降噪后語音輸出頻譜');%axis(0 8000 0 80);f=1;while f=1flag=input('請選擇輸出語音;1:原式語音 2:加噪主語音 3:噪聲語音 4:降噪后語音');switch flag case 1 sound(sou
32、rce,fs,bits); case 2 sound(y1,Fs1,bits1); case 3 sound(y2,Fs2,bits2); case 4 sound(output,Fs3,bits3);endf=input('是否重新選擇? 是 輸入1 否 輸入0');end5仿真結果與分析5.1原始音頻信號(1)原始語音波形圖5-1原始語音波形圖(2)原始語音頻譜 圖5-2原始語音頻譜5.2麥克風主語音信號(1) 麥克風主語音波形圖5-3增強的語音信號波形圖(2)麥克風主語音頻譜圖5-4麥克風主語音頻譜5.3噪聲語音信號(1) 噪聲語音波形圖5-5噪聲語音波形(2) 噪聲語音
33、頻譜圖5-6噪聲語音頻譜5.4降噪后語音信號(1)降噪后語音波形圖5-7降噪后語音波形(2) 降噪后語音頻譜 圖5-8降噪后語音頻譜5.5信號處理分析5.5.1原始語音信號與主語音信號分析主語音信號為原始語音信號加噪聲信號得到的合成信號,由于噪聲信號波形的幅值相對原始語音信號幅值較小,因此原始語音信號加噪前后的波形差異并不十分明顯,如圖5-9,但通過對比頻譜還是可以看出原始語音信號加噪前后有所不同,如圖5-10。圖5-9原始語音與主語音波形對比圖5-10原始語音與主語音頻譜對比5.5.2主語音信號與降噪后語音信號分析由于噪聲信號波形的幅值相對主語音信號幅值較小,因此主語音信號降噪前后的波形差異
34、并不十分明顯,如圖5-11,但通過對比頻譜(如圖5-12)可以看出降噪后的語音信號波形剛好濾除了噪聲波形,得到的波形圖也更清晰。圖5-11主語音信號與降噪后語音信號波形對比圖5-12主語音信號與降噪后語音信號頻譜對比5.5.3原始語音信號與降噪后語音信號分析原始語音信號與降噪后語音信號幾乎相同,如圖5-13,對比頻譜可以看出兩信號頻譜也幾乎相同,如圖5-14。說明主語音信號經過RLS算法降噪的效果很好,主語音信號得到增強。圖5-13原始語音信號與降噪后語音信號波形對比圖5-14原始語音信號與降噪后語音信號頻譜對比6心得體會在課程設計的過程中,通過查閱我明白了基于RLS多麥克風語音信號降噪的過程
35、以及RLS的原理及實現(xiàn)方法,通過MATLAB編程及仿真,實現(xiàn)了語音信號的降噪,知道了怎么獲得一個隨機噪聲以及濾除噪聲的過程,充分體會了基于RLS多麥克風語音信號降噪這一技術的作用。同時,也學會了對語音信號進行頻譜分析,進一步熟悉了MATLAB的使用過程,加深了對這一軟件的了解,提高了自己動手的能力。由于對理論知識學習不夠扎實,我深感書到用時方恨少,于是便重新拾起教材與實驗手冊,對知識系統(tǒng)而全面進行了梳理,遇到困難便向同學請教,終于熟練掌握了基本理論知識,而且領悟諸多平時學習難以理解掌握的較難的知識,掌握了解決問題的思維方式而不是一味的具體的解決方法,找到了設計方向。正所謂實踐是檢驗真理的唯一標
36、準,只有自己動手做過了,才能更貼切更深刻的掌握所學的知識,使自己進一步地提高。這個過程也讓我明白了學無止盡的道理,而且理論只有與實際聯(lián)系起來才能更好地去學習與理解。參考文獻1 劉泉,信號與系統(tǒng), 高等教育出版社, 2006年。2 劉泉,數(shù)字信號處理,電子工業(yè)出版社,2008年。3 Edward W. Kamen, Bonnie S.Heck 編,信號與系統(tǒng)基礎應用Web 和MATLAB(第二版),科學出版社,2002 年。4曹斌芳.自適應抵消技術的研究.湖南大學,20075胡廣書.數(shù)字信號處理理論、算法與實現(xiàn). 清華大學出版社,20036安穎、侯國強.自適應濾波算法研究與DSP實現(xiàn).現(xiàn)代電子技
37、術出版社,20077劉泉 江雪梅 信號與系統(tǒng) 北京 高等教育出版社 2006附錄 源程序clc;source,fs,bits=wavread('Audio.wav');noise=0.07*randn(length(source),1);source=source(:,1);source1=source+noise;wavwrite(noise,fs,'RLSrefns'); %輸出模擬噪聲信號wavwrite(source1,fs,'RLSprimsp'); %輸出模擬主語音信號primary=wavread('RLSprimsp.wav'); %讀入麥克風語音信號primary=primary'fref=wavread('RLSrefns.wav'); fref=fref'% 初始化Worder=32; %濾波器階數(shù)lambda=1 ; % 設置遺忘因子Delta=0.001 ; p=(1/Delta) * eye ( Worder,Worder ) ; w=zeros(Worder,1);output=primary; %主語音輸出loopsize=max(size(primary); for i=1+Worder:loopsize %寫RLS算法公式 u=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)培訓現(xiàn)場課件
- 車間承包與市場拓展合作框架協(xié)議書
- 有限合伙公司分紅方案
- 餐飲企業(yè)股權激勵方案與合同書
- 成都市二手房買賣糾紛調解及仲裁服務合同
- 舊改項目拆遷安置房交易安全保障合同
- 新能源汽車推廣與市場拓展合同范本
- 廟會小吃承包方案
- 文物的面試題及答案
- 農藥污染與健康
- 農村小學基于國家中小學智慧教育平臺下的雙師課堂研究
- 遙感地質學復習題(完整版)
- 中藥濕敷技術
- 2023年上海市教師招聘考試《教育心理學》考前模擬題及答案
- DLT-969-2023年變電站運行導則
- ZAPI交流故障表 薩牌代碼
- 《健康經濟學》課件Chapter16
- 兒童用藥劑量
- 2023年感動中國十大人物頒獎詞-范文匯編
- 人教版高中化學必修1教師用書
- 四員一長抽考題庫
評論
0/150
提交評論