1.本發明涉及一種用于運行功能可靠的音頻輸出系統的方法、一種功能可靠的音頻輸出系統、一種包括這種音頻輸出系統的車輛,并且還涉及一種用于執行該方法的計算機程序產品、以及一種包括這種程序的數據載體。
背景技術:
2.功能可靠的音頻輸出由系統來實現,這些系統本身被認為具有足夠的功能可靠性、或者在基于數字信號處理的復雜監測設備的幫助下進行工作。否則,只能在非常有限的程度上提供對正確輸出的音頻信號的內容驗證,例如,以最大水平的簡單測量值的形式。此外,還存在診斷方法,這些診斷方法采用人類可感知的測試信號,并且在汽車生產的情況下,例如檢查車輛中信息娛樂部件的正確安裝和功能。
3.復雜的數字信號處理設備相對較復雜且昂貴,因此與功能不可靠的系統功能共享。因此,功能可靠性驗證非常復雜,因為除了復雜的信號處理之外,還必須考慮功能不可靠的部分。通常不會對聲學傳輸中涉及的所有技術部件進行檢查,因為這在當系統運行時沒有可感知的測試信號的情況下是不可能的。
4.因此,如果功能可靠的音頻輸出系統不僅能夠求助于復雜且昂貴的設備,還能夠求助于具有簡單認證的設備,并且在不過度增加復雜性的情況下確保功能可靠性,并且還能夠在系統運行時執行對傳輸中所涉及的技術部件的檢查,則這將是所期望的。
技術實現要素:
5.根據本發明的用于運行具有簡單認證的計算節點以及復雜的計算節點的功能可靠的音頻輸出系統的方法包括以下步驟:
[0006]-在簡單認證的計算節點中生成指配給警報的代碼;
[0007]-將代碼傳輸到復雜的計算節點;
[0008]-在第一計算進程中,生成具有聲學水印的輸出信號;
[0009]-將輸出信號傳輸到獨立于該第一計算進程的第二計算進程;
[0010]-在獨立于第一計算進程的第二計算進程中,獲知包含在輸出信號中的代碼;
[0011]-將該代碼傳輸到簡單認證的計算節點;以及
[0012]-根據所生成的代碼與基于所接收的代碼的代碼的比較,驗證該音頻輸出系統在功能上是否可靠。
[0013]
這具有以下優點:可以減少成本和復雜性,并且可以以簡單的方式檢查音頻輸出系統的功能可靠性、特別是其部件的功能可靠性。
[0014]
有利地,根據本發明的方法在以下步驟中:
[0015]-將輸出信號傳輸到獨立于第一計算進程的第二計算進程;
[0016]
包括以下步驟:
[0017]-借助于聲音轉換器發射該輸出信號;
[0018]-通過聲音傳感器接收聲學信號,該聲學信號包括由聲音轉換器輸出的輸出信號;
[0019]
以及以下步驟:
[0020]-在獨立于第一計算進程的第二計算進程中,獲知包含在輸出信號中的代碼;
[0021]
從該聲學信號獲知包含在輸出信號中的該代碼。
[0022]
這具有以下優點:可以以簡單且高效的方式檢查整個傳輸路徑的功能可靠性。
[0023]
有利地,根據本發明的方法另外包括以下步驟:
[0024]-從簡單認證的計算節點向復雜的計算節點發射第一控制信號,以便促成第一信號歸入到輸出信號中。
[0025]
這具有以下優點:可以傳送和激活附加的、特別是與可靠性相關的信息,并且因此可以提高方法的可靠性和靈活性。
[0026]
替代性地或另外地,還可以執行以下步驟:
[0027]-將生成的代碼與簡單認證的計算節點已知的、且作為信號的特征的代碼疊加;
[0028]-從聲學水印以及該第一信號或第二信號中的至少一個信號生成該輸出信號;以及
[0029]-從簡單認證的計算節點向復雜的計算節點發射第二控制信號,以便激活限幅級,該限幅級可以限制第二信號的信號水平。
[0030]
這具有以下優點:可以傳送和激活附加的、特別是與可靠性相關的功能,并且因此可以提高方法的可靠性和靈活性。
[0031]
有利地,根據本發明的方法包括以下附加步驟:
[0032]-從復雜的計算節點向簡單認證的計算節點發射第三控制信號,以便告知,在輸出信號中包括第二信號。
[0033]
這具有以下優點:可以使用與可靠性無關的信號,并且可以使檢查更簡單且更靈活。
[0034]
有利地,根據本發明的方法重復以下步驟:
[0035]-在獨立于第一計算進程的第二計算進程中,獲知包含在聲學信號中的代碼;以及
[0036]-將代碼傳輸到簡單認證的計算節點。
[0037]
在這種情況下,特別地,該代碼可以一直/反復地存在于該輸出信號中,并且該基于該接收的代碼的代碼可以通過對被重復確定并被傳輸到該簡單認證的計算節點的該代碼進行統計處理來生成。
[0038]
這具有以下優點:對傳輸的評估、檢查和保護特別可靠和穩健,能夠抵抗干擾影響。
[0039]
另外,根據本發明的方法的特征可以在于,生成的代碼與基于接收的代碼的代碼的比較產生肯定驗證的概率。在這種情況下,這表明該音頻輸出系統因此有一定概率是功能可靠的。在這種情況下,可以提供至少一個閾值,當超過該閾值時,判定為功能可靠性的肯定驗證,而當低于該閾值時,判定為功能可靠性的否定驗證或未驗證。替代性地或另外地,生成的代碼與基于接收的代碼的代碼的比較可以產生否定驗證的概率,也就是說,該音頻輸出系統有一定概率是功能不可靠的。在這種情況下,也可以提供至少一個閾值,當低于該閾值時,判定為功能可靠性的否定驗證,而當超過該閾值時,判定為功能可靠性的肯定驗證或未驗證。
[0040]
這具有以下優點:可以根據要求靈活地設置可靠性。
[0041]
有利地,在否定驗證和/或未驗證的情況下,因此是在音頻輸出系統是功能不可靠的情況下,根據本發明的方法執行以下步驟中的至少一個步驟:
[0042]-驅動更簡單的但可靠的替選的音頻輸出;
[0043]-將系統切換到可靠狀態;
[0044]-向駕駛員通知存在系統故障;
[0045]-以音頻輸出系統的冗余特性為依據進行檢查;以及
[0046]-以音頻輸出系統的冗余特性為依據進行補償。
[0047]
這具有以下優點:可以根據要求靈活地對功能可靠性故障做出反應,并且可以隨時向駕駛員通知與可靠性相關的情況。
[0048]
根據本發明的用于執行根據本發明的方法的功能可靠的音頻輸出系統包括聲音轉換器、聲音傳感器、簡單認證的計算節點以及復雜的計算節點。
[0049]
這具有以下優點:該音頻輸出系統的生產可以很簡單、且更具成本效益。此外,該方法的優點適用于音頻輸出系統。
[0050]
有利地,根據本發明的音頻輸出系統的特征在于,該第一計算進程和獨立于該第一計算進程的該第二計算進程是在同一物理計算節點上執行的,其中,特別地,該第一計算進程與該第二計算進程通過至少一種內存隔離技術彼此分離。
[0051]
這具有以下優點:提高了例如面對可能的編程錯誤的可靠性,并且可以減少復雜部件的比例。
[0052]
在替代實施例中,已經在經認證環境中預先實現了用水印w對聲學警報信號s的編碼,使得水印從存儲在音頻輸出系統或車輛中的音頻數據的開始部分開始。結果,可以簡化音頻輸出系統的計算操作。因此,每個警報也被指配了固定的代碼或代碼對。該指配可以存儲在單獨的數據庫中。因此,能夠獲取簡單認證的計算節點也可以僅向復雜節點傳輸警報的代表標識,而不一定傳輸代碼。
[0053]
這具有以下優點:由此可以防止由于知道復雜節點中的代碼而發生的錯誤,并且減少和簡化了所需的數據處理。在這種情況下,復雜節點根本沒有關于代碼的信息。
[0054]
因此,這種用于運行具有簡單認證的計算節點以及復雜的計算節點的功能可靠的音頻輸出系統的方法包括以下步驟中的至少一個步驟:
[0055]-在簡單認證的計算節點(a)中從數據庫讀入指配給警報(r)的代表標識以及代碼(a1);
[0056]-將代表標識傳輸到該復雜的計算節點(b);
[0057]-在第一計算進程(b1)中,生成具有聲學水印(w)的輸出信號(y);
[0058]-將輸出信號(y)傳輸到獨立于第一計算進程(b1)的第二計算進程(b2);
[0059]-在獨立于第一計算進程(b1)的第二計算進程(b2)中,獲知包含在輸出信號(y)中的代碼(a2);
[0060]-將該代碼(a2)傳輸到簡單認證的計算節點(a);以及
[0061]-根據所讀入的代碼(a1)與基于所接收的代碼(a2)的代碼的比較,驗證該音頻輸出系統在功能上是否可靠。
[0062]
一種根據本發明的車輛,該車輛包括根據本發明的功能可靠的音頻輸出系統,該
車輛被配置為執行根據本發明的方法。
[0063]
這具有以下優點:由此該車輛的生產可以更具成本效益,并且功能可靠性得以保持。此外,根據本發明的方法和根據本發明的音頻輸出系統的優點也適用于根據本發明的車輛。
[0064]
一種根據本發明的計算機程序產品,包括指令,當該程序產品由嵌入式系統執行時,這些指令使該嵌入式系統執行根據本發明的方法。
[0065]
這具有以下優點:該方法可以靈活地適應并在許多不同的系統上執行。
[0066]
一種根據本發明的數據載體存儲根據本發明的計算機程序產品。
[0067]
這具有以下優點:該計算機程序可以容易地傳輸、保存和復制。
[0068]
該方法檢查包括揚聲器在內的直至駕駛員的整個聲學傳輸路徑。為此,不需要人類可感知的測試信號。用于識別聲學水印的方法在面對外部干擾時非常可靠和穩健,因此即使在存在來自車輛內部或周圍環境的聲學干擾的情況下,也可以使用該方法。本發明使得可以使用不可認證的處理器,即復雜的處理器,這些處理器還可以完成除音頻輸出之外的許多其他任務。特別地,這可以在除了可靠性相關的音頻信號s之外還必須使駕駛員注意傾聽其他音頻信號的系統中實現。本發明的另一個基本優點是劃分為簡單的部分,該部分根據asil可證明是足夠可靠的,并且不需要以與音頻樣本/音頻采樣值一樣的時間對該部分進行復雜或快速信號處理。這使得當前可商購的處理器極具成本效益。本發明還可以使用駕駛員信息系統的用于駕駛員的娛樂、信息和語音控制的典型設備,以提供與安全性相關的聲音警報或通知,而其安全性不需要在高于qm(質量管理)的更高asil(汽車安全完整性等級)級別的安全性方面進行驗證,因為整個聲學傳輸路徑由相對較簡單且便宜的部件來監測。在許多情況下,在駕駛員出現安全臨界情況之前,可以及時識別各個部件的故障,所述部件能夠被更換,或者在安全臨界的聲音警報的情況下,如果有可用的冗余,則可以容忍這些故障。
[0069]
除了在車輛中使用之外,還可以用于在公共建筑和運輸系統、工業設施等中提供與安全相關的通告。
[0070]
根據本發明的關于功能安全的音頻輸出的概念可以例如到達asil b的認證標準。
附圖說明
[0071]
本發明的進一步的特征、屬性和優點從以下參考附圖的描述中將變得顯而易見,示意性地在附圖中:
[0072]
圖1示出了根據本發明的用于運行功能可靠的音頻輸出系統的方法的圖示;
[0073]
圖2示出了數字信號處理的圖示;以及
[0074]
圖3示出了數字信號處理的進一步圖示。
具體實施方式
[0075]
圖1示意性展示了根據本發明的可靠音頻輸出系統x。功能可靠的音頻輸出系統x以這樣的方式劃分:能夠相對較簡單地認證的(特別是可根據asil認證的)配備的計算節點a(即,例如具有低復雜性和有限的計算能力)在序列控制器(程序)g中將代碼a1指配給特定的警報r,并將該代碼傳輸到更復雜的節點b,而該更復雜的節點借助于計算進程b1中的數
字信號處理c從所述代碼a1以及要輸出的聲學警報信號s中生成信號w,所述信號w被要輸出的警報信號s掩蔽,也就是說,人類不能將所輸出的信號s與信號s和w的疊加區分開。為此,序列控制器g將控制信號a3傳輸到計算進程b1,該計算進程激活信號s的輸出、并切換到警報信號s作為信號處理c的參考信號。為了可靠且明確地將警報聲音的信號源s與任何其他音頻信號m區分開,除了代碼a1之外,可以將節點a已知的、且不等于信號源s的零點的特征代碼bk(例如,相關聯音頻文件的校驗和)疊加在代碼a1上(例如,通過逐位異或函數(xor))。對于其他音頻信號m,a1可能保持不變,例如通過將零與a1進行“或”運算。信號w也被稱為聲學水印。對用于形成聲學水印w的a1的調制和編碼通常在警報信號s中的冗余且與人類聽覺無關的信號分量中實現。
[0076]
信號s和w以及可選的另外的信號m(例如音樂)相加以形成輸出信號y。在必須輸出警報信號s的情況下,序列控制器g將信號a4傳輸到計算進程b1,該信號激活限幅級l并將m的信號水平限制到這樣的程度:即駕駛員不會聽不到警報信號s,并且輸出信號y中水印的識別不會受到太多干擾或延遲。計算進程b1通常將輸出信號y輸出到放大器v,該放大器將放大后的信號作為輸出信號輸出到聲音轉換器ls(例如,揚聲器)。由聲音轉換器ls生成的聲音和可能的其他噪音,即聲學信號z1,被駕駛員和聲音傳感器mic兩者接收。該聲音傳感器將該信號轉換為(樣本的/采樣值的)信號流z,并將該信號流饋送到第二計算進程b2。所述第二計算進程有利地位于同一物理計算節點b中,從而不僅能夠節省成本,也可以容納在專用計算節點中。借助于信號處理d,所述計算進程b2獲知信號中包含的(最可能的)代碼a2。計算進程b2必須完全獨立于計算進程b1來操作,特別是不會預先知道代碼a1。包含自信號流z的最可能的代碼a2通過多次重復被傳輸到計算節點a,該計算節點在統計處理h中評估所獲知的代碼。在足夠的代碼重復之后,計算節點a中的序列控制器k進而可以就通過與在許多周期內取平均的代碼a2進行比較而輸出的警報聲音而言足夠可靠地判定在接收的聲學信號z1中是否存在來自揚聲器的存在于聲學信號中的代碼a1bk(a1 xor bk),從而為駕駛員提供警報信號的可聽性。在平均代碼a2不對應于a1bk的情況下,系統中存在故障,并且計算節點a可以驅動更簡單但可靠的替選的音頻輸出bz,或將系統切換到可靠狀態,即系統故障的存在被可靠地通知給駕駛員。為了整個系統的足夠可靠性,必須確保代碼a1對于計算進程是未知的。這可以通過內存隔離技術來實現(例如,借助于內存管理單元和支持進程隔離的運行系統)。為了增加系統的可靠性并且增強面對干擾信號的穩健性,可以在信號分布曲線中多次重復要編碼的代碼,并且可以在針對計算節點a的序列控制器k中存在系統故障方面做出判定之前通過計算節點a中的隨機處理h對該要編碼的信號進行評估。特別地,相關性濾波器適用于此目的;例如,也可以使用信號匹配濾波器(最優濾波器、匹配濾波器)。
[0077]
在信號輸出和評估輸出信號是否能夠被要通知的人聽到期間,可以考慮各種因素。特別地,可以考慮環境音量以及其他信息,特別是個人信息、個人設置和傾聽習慣。在這方面,例如,可以考慮座椅設置、身體姿勢、典型音量設置以及特別是關于人的聽覺能力方面的限制或過度敏感的信息。也可以考慮外部設備的存在或使用,特別是助聽器及其設置。這有利地通過外部設備與車輛部件之間的通信來實現,但是也可以通過車輛傳感器來間接確定。在這方面,例如,相機可以確定沒有助聽器和/或聲音和其他聲響以增加的音量進行播放。
[0078]
如果存在足夠大聲的信號m,也可以在沒有警報的情況下在后臺檢查收發器系統的功能。音頻信號m是否足夠大聲的事實可以由限幅級l確定,這是因為限幅級測量信號的當前功率,并且這可以作為控制信號a5傳送到序列控制器k。音頻信號m(而不是警報s)被饋送到信號處理c,并像s一樣被處理。如果控制信號a5發出足夠的音頻音量,則序列控制器k可以基于接收的代碼a2判定是否存在系統故障。一般來說,在這種情況下,由于不存在危害,因此不需要在短時間內做出判定,因此允許選擇相應更長的統計評估時間,并且因此提高關于是否存在系統故障的正確判定的可靠性。序列控制器k可以使用后臺檢查的結果,通過某種其他功能方法(例如,通過視覺輸出或替選的聲音輸出)立即向駕駛員通知存在系統故障,并且例如可以請求尋找服務設施。由于現在通常經由多個聲音轉換器(揚聲器)來實現音頻輸出,并且通常也經由多個麥克風mic來接收聲音以便改善方向效果,所以通常存在冗余的聲學系統,該冗余的聲學系統僅在所有聲音轉換器或麥克風同時出現故障的這種不太可能的情況下才會失效,信號處理d和序列控制器k可以考慮到這一點。例如,只要仍然存在來自至少一個麥克風的具有正確識別代碼的信號流z,就可以容易地識別一個或多個麥克風的故障。通過將代碼a1交替地僅疊加在一個揚聲器聲道上,或者通過將不同的代碼(在統計上彼此獨立)疊加在各個揚聲器上,同樣可以單獨測試揚聲器。在這些情況下,可以在系統失效之前將服務情況告知駕駛員。
[0079]
然而,如果外部聲學干擾信號過大以至于所有麥克風由于例如被驅動到其極限而失效,則可能會錯誤地識別出明顯的系統失效。然而,超速駕駛的聲學信號z1可以被信號處理d識別,并且可以與故障麥克風的典型信號分布曲線區分開,因為故障麥克風不提供音頻信號水平或僅提供低水平。在超速駕駛的情況下,信號處理d隨后向序列控制器k發送特殊代碼a2,這可以通過某種其他方法(例如,通過視覺輸出)向駕駛員輸出警報,因為不再確保向駕駛員的聲學傳輸路徑。
[0080]
此外,在信號的生成、處理和/或傳輸期間存在發生錯誤的可能性,因此代碼a1和代碼a2對應的概率基本上始終為1。例如,這可能是由于計算進程b1沒有與計算進程b2正確分離,因此代碼a1被計算進程b2知道或者被其錯誤地使用。這種錯誤可以通過在計算進程b1中使用代碼a1或代碼a1bk之后在完整內存中改變或從完整內存中擦除這些代碼來發現。
[0081]
替代性地或另外地,特別是在從放大器v經由聲音轉換器ls到人耳的傳輸路徑可以歸類為功能可靠或以某種其他方式驗證的情況下,輸出信號y也可以直接饋送到計算進程b2。通過經過驗證的傳輸路徑,包括聲學傳輸的完整處理路徑因此可以歸類為功能可靠的。特別地,聲學信號中實際上包含的代碼因此也基本上像通過純電子傳輸一樣傳遞到計算進程b2。
[0082]
圖2展示并描述了數字信號處理c(編碼器)的示例性實現。要編碼的代碼可以通過二進制相移鍵控(bpsk)擴展到很大的頻率范圍,這可以在對映信號編碼(例如-1;1)的情況下通過信號的簡單乘法從已知的偽隨機信號序列(prbs源)和循環重復的代碼序列來實現。將要編碼的代碼與來自prbs源的這種已知偽隨機信號序列(具有近似白色的頻譜并且其自相關函數中具有明確峰值)進行疊加(例如,利用xor函數),簡化了對脈沖序列的開始和周期的識別,因為自相關函數在恰好一個周期后具有明確的最大值。最后,可以將信號與余弦函數相乘,以獲得對合適值的最大頻譜貢獻的頻譜偏移。此外,可以通過人類的心理聲學模型在頻域中對所得信號序列進行加權(例如,通過快速傅立葉變換fft),使得信號w保持在
人類聽覺的感知閾值以下。在這種情況下,掩蔽模型向加權進程提供關于掩蔽閾值的估計,使得音頻信號m和/或警報s僅掩蔽由于代碼引起的改變。此外,可以修改要編碼的代碼,使得接收器可以例如借助于卷積碼來識別傳輸錯誤。
[0083]
如果必須同時輸出多個與安全性相關的聲音,則可以針對不同的聲音使用具有正交碼的pnr信號,以便更好地且可靠地區分不同的編碼周期長度。
[0084]
圖3展示并描述了信號處理d(解碼器)的示例性實施方式,并且該信號處理具有匹配濾波器,采樣數據流z[k](即,來自麥克風的信號流z)被饋送到該匹配濾波器。匹配濾波器具有相對于prbs信號時間反轉的脈沖響應d[n-n],在符號持續時間tsymb=n*t0的極限處在各自的情況下與輸入信號具有最大相關性或反相關性。這些極值由同步單元識別并驅動采樣單元,采樣單元在時間點n對匹配濾波器的輸出o[k]進行采樣并將其饋送到閾值判定單元。閾值判定單元基于根據經驗選擇的閾值s來判定是否存在正位的充分相關性(數據位g[n]與prbs序列d[n]相同)或負位的充分反相關性(數據位g[n]與prbs序列d[n]不同)。如果不是這種情況,則判定單元輸出0,指示未識別的位或位錯誤。因此,代表對代碼a1bk的估計的代碼a2出現在解碼器d的輸出端。由于該代碼a2可能仍然存在位錯誤或者甚至估計錯誤,因此在代碼序列a1的許多周期n上將該代碼傳輸到計算節點a中的隨機評估單元h。然后,所述評估單元可以通過在接收的碼字a2的相同位定位處添加數據位來非常簡單地執行隨機評估,并且可以將結果饋送到序列控制器k中的閾值判定單元。
[0085]
在替代實施例中,也可以已經在經認證環境中預先實現了用水印w對聲學警報信號s的編碼,使得水印從存儲在音頻輸出系統x或車輛中的音頻數據的開始部分開始。結果,可以簡化音頻輸出系統x的計算操作。因此,每個警報r也被指配了固定的代碼a1或代碼對a1、bk。該指配可以存儲在單獨的數據庫中。因此,能夠簡單認證的計算節點a也可以僅向復雜節點b傳輸警報r的代表標識,而不一定傳輸代碼a1。結果,可以防止由于知道復雜節點b中的代碼a1而發生的錯誤。在這種情況下,復雜節點b根本沒有關于代碼a1的信息。
[0086]
因此,首先由簡單認證的計算節點a從數據庫讀入指配給警報r的代表標識以及代碼a1。該代表標識被傳輸到復雜的計算節點b,以便在那里確定指配給警報的音頻信號,該音頻信號至少包括作為水印的代碼a1。不允許計算節點b訪問包含代碼a1和代表標識的數據庫。在這種情況下,音頻信號是在經認證的環境中預先創建的,并且在其產生期間或之后存儲在音頻輸出系統上。在這種情況下,經認證的環境適合于針對汽車領域的安全臨界應用創建音頻輸出數據,從而可以實現高asil級別(即高于qm級別)。在第一計算進程b1中,然后生成包括具有代碼a1的音頻信號的輸出信號y。輸出信號然后被傳輸到獨立于第一計算進程b1的第二計算進程b2。在所述第二計算進程中,然后提取輸出信號y中包含的代碼a2。然后,該提取的或接收的代碼a2被傳輸到簡單認證的計算節點a。在簡單認證的計算節點中,然后將讀入的代碼a1與基于接收的代碼a2的代碼進行比較,以驗證音頻輸出系統在功能上是否可靠。
[0087]
經由揚聲器-麥克風路徑將輸出信號y傳輸到獨立于第一計算進程b1的第二計算進程b2是特別有利的。因此,可以驗證音頻輸出系統在功能上是否可靠。
[0088]
已經包括水印以及相關的代表標識和代碼a1的音頻信號也可以有利地隨后通過軟件更新的方式提供給音頻輸出系統,特別是通過遠程維護的方式提供的更新,即所謂的空中更新。
[0089]
在這種情況下,這種功能可靠的音頻輸出系統x包括至少一個聲音轉換器ls、聲音傳感器mic、簡單認證的計算節點a、數據庫以及復雜的計算節點b。
[0090]
在車輛中,特別是聲音轉換器和聲音傳感器也可以被配置為裝飾部件的形式。此外,也可以借助于激光器執行聲波的空間定向發射。
[0091]
雖然已通過優選示例性實施例更具體地展示并詳細描述了本發明,但是本發明不限于所披露的示例。本領域技術人員可以在不脫離諸如所附專利權利要求所限定的本發明的保護范圍的情況下得出其變型。