PDA

View Full Version : DSP trên dsPIC


kennyha85
30-11-2006, 07:37 PM
Em đang nghiên cứu về lọc dùng dsPIC. Em có đọc bài tham khảo ADC_DSP_Lib_Filter, trong file ExsampleHPF.s các hệ số a b đều là số nguyên kiểu unsigned int ví dụ 0x2392 ; b( 1,0)/2. trong khi thiết kế bằng matlab cho ta cấu truc IIR Drect form II với các hệ số a ,b là float ; ví dụ:
b=[0.4763 -0.6553 0.4763];
a=[1.0000 -1.4163 0.7136];
có 6 hệ số trong khi một section của ExsampleHPF chỉ có 5 hệ số là b0, b1, b2, a1, a2;
các anh đã từng làm dsPIC có thể bày cho em cách chuyển đổi các hệ số của matlab sang dạng thích hợp không?.
Trong tài liệu có nói để thiết kế bộ lọc có thể dùng phần mềm dsPIC FD em tra trên mạng không thấy. Anh nào có phần mềm này có thể share cho em được không.
mail của em là: luumanhha85@gmail.com
cám ơn các anh rất nhiều!

namqn
30-11-2006, 07:46 PM
Em đang nghiên cứu về lọc dùng dsPIC. Em có đọc bài tham khảo ADC_DSP_Lib_Filter, trong file ExsampleHPF.s các hệ số a b đều là số nguyên kiểu unsigned int ví dụ 0x2392 ; b( 1,0)/2. trong khi thiết kế bằng matlab cho ta cấu truc IIR Drect form II với các hệ số a ,b là float ; ví dụ:
b=[0.4763 -0.6553 0.4763];
a=[1.0000 -1.4163 0.7136];
có 6 hệ số trong khi một section của ExsampleHPF chỉ có 5 hệ số là b0, b1, b2, a1, a2;
các anh đã từng làm dsPIC có thể bày cho em cách chuyển đổi các hệ số của matlab sang dạng thích hợp không?.
Trong tài liệu có nói để thiết kế bộ lọc có thể dùng phần mềm ...FD em tra trên mạng không thấy. Anh nào có phần mềm này có thể share cho em được không.
cám ơn các anh rất nhiều!
Tài liệu bạn đang nói là tài liệu nào? Nó đề cập đến việc thiết kế bộ lọc số hay tương tự?

Câu hỏi liên quan đến ví dụ của Microchip thì tôi sẽ trả lời sau.

Thân,

kennyha85
30-11-2006, 07:49 PM
em đẫ edit lại rồi: đó là phần mềm thiết kế bộ lọc số dsPIC FD . trong tầi liệu "dsPIC_Language_Tool_Libraries_51456b.pdf"

namqn
30-11-2006, 09:01 PM
em đẫ edit lại rồi: đó là phần mềm thiết kế bộ lọc số dsPIC FD . trong tầi liệu "dsPIC_Language_Tool_Libraries_51456b.pdf"
Tôi đoán là hãng Momentum Data Systems gì đó đã không còn hoạt động, và phần mềm đó hiện được Microchip bán với hai phiên bản khác nhau. Phiên bản low cost có giá khoảng 30 USD trên Microchip DIRECT.

Thân,

kennyha85
01-12-2006, 10:30 AM
Nếu em mua bản lowcost mà dùng chưa thấy thỏa mãn thì có thể đổi lại để mua bản hight cost không anh?

mà mấy bản đó mắc tiền quá, so với một sinh viên, trong khi ta hoàn toàn có thể thiết kế bằng matlab. Nhưng em chưa rõ cách chuyển đổi hệ số như thế nào. Anh Nam giúp em , em cảm ơn rất nhiều.

kennyha85
01-12-2006, 01:07 PM
Em muốn hỏi thêm về độ chính xác của dsPIC30F. biến float trong C30 có độ chính xác là bao nhiêu bit, giá trị tối đa và tối thiểu của biến float là bao nhiêu, và độ phân giải của biến float ?

namqn
02-12-2006, 12:43 AM
Em muốn hỏi thêm về độ chính xác của dsPIC30F. biến float trong C30 có độ chính xác là bao nhiêu bit, giá trị tối đa và tối thiểu của biến float là bao nhiêu, và độ phân giải của biến float ?
Float của C30 tuân theo chuẩn IEEE-754, dài 32-bit. Bạn tham khảo link dưới đây về chuẩn IEEE-754:

http://babbage.cs.qc.edu/courses/cs341/IEEE-754references.html

Theo đó, float của C30 có độ chính xác (phần định trị) là 24 bit (khoảng 7 chữ số thập phân), độ lớn tối đa là 3.4x10^38, độ lớn tối thiểu là 1.18x10^-38. Độ phân giải thay đổi theo phạm vi giá trị (vùng normalized và denormalized).

Thân,

namqn
02-12-2006, 11:30 PM
Bây giờ tôi nói đến câu hỏi đầu tiên của bạn. Các hệ số trong tập tin nguồn .s của Microchip là dạng hex của số fractional. Bạn đọc thêm về fractional trong tài liệu hướng dẫn C30. Các hàm trong thư viện của Microchip thường dùng dạng dữ liệu fractional (chính là một dạng fixed point), và đủ chính xác trong đa số trường hợp.

Thân,

kennyha85
04-12-2006, 09:18 AM
Em cảm ơn Anh NAm! Em cung đã đọc và hiểu được Fractional type và kiểu trình bày dưới dạng hex . song khi thiết kế bằng MAtlab thì ta có 6 hệ số:ví dụ:
b=[.9880 -1.8794 .9880];
a=[1 -1.8794 .9761] ;
là một bộ lọc IIR có hệ số khuếch đại là 1
Trong khi cấu trúc bộ lọc IIRTranposed hay IIRcanonic chỉ có 5 hệ số: ví dụ
IIRcanonic là [ a2 a1 b2 b1 b0 ]; Nếu như từ bộ lọc matlab ta chuẩn hóa các hệ số (vì |a1| và |b1| đều > 1) cụ thể là lấy a=a/2;b=b/2 khi ấy sẽ được các số có thể biểu diễn dưới dạng Fractional :
tức là
b=[.9880 -1.8794 .9880]/2;
a=[1 -1.8794 .9761] /2 ;
thì bộ lọc này vẫn giữ nguyên độ khuếch đại và tính chất, song a0 luc nay là a0=0.5;
họ bỏ mất a0 của mình và không rõ mặc định trong IIRcanonic và IIRTranposed thì a0 là bao nhiêu?.

kennyha85
04-12-2006, 09:23 AM
Thêm nữa, về vấn đề hệ số khuyếch đại, làm thế nào sau khi chuyển các hệ số Matlab đã được chuẩn hóa sang dạng Hex của fractional trong file .s thì tín hiệu ra vấn có độ khếch đại là 0db ?

namqn
04-12-2006, 11:24 PM
Chuyện thực hiện mạch lọc số trên dsPIC thì tôi chưa thử bao giờ nên không giúp thêm được bạn. Hy vọng có người khác giúp bạn. Tuy nhiên, bạn nên tìm hiểu kỹ cấu trúc của bộ lọc được thực hiện trong thư viện của Microchip.

Tôi đã đọc lại tài liệu về DSP và tài liệu hướng dẫn về thư viện cho C30, thấy rằng Microchip đã mặc định a0 là 1 khi thực hiện các hàm thư viện. Do đó bạn cần hiệu chỉnh hay thiết kế lại bộ lọc nếu các hệ số không thỏa mãn điều kiện để dùng với số fractional. Theo Microchip, để đạt được 0 db thì bạn có thể dùng một hệ số thu/phóng (scale) ở phía đầu ra.

Thân,

kenhcon_bk
14-08-2007, 12:16 AM
Em cũng đang tìm hiểu về DSPIC. Các bác có thể chỉ giáo giúp em con DSpic nào có bán ở Việt nam mà có từ "5 bộ nhân cứng" trở lên không. Em dang làm đề tài về xử lí tiếng nói, Thấy bảo phải có những con có từ 5 bộ nhân cứng trở lên mới đủ mạnh để xử lí (yêu cầu của thầy giáo thế các bác a). Mà e thì chưa hỉu kĩ cái " nhân cứng" đó là gì
Cảm ơn các bác nhiều

namqn
14-08-2007, 02:23 AM
Em cũng đang tìm hiểu về DSPIC. Các bác có thể chỉ giáo giúp em con DSpic nào có bán ở Việt nam mà có từ "5 bộ nhân cứng" trở lên không. Em dang làm đề tài về xử lí tiếng nói, Thấy bảo phải có những con có từ 5 bộ nhân cứng trở lên mới đủ mạnh để xử lí (yêu cầu của thầy giáo thế các bác a). Mà e thì chưa hỉu kĩ cái " nhân cứng" đó là gì
Cảm ơn các bác nhiều
Có lẽ không có dsPIC nào có 5 bộ nhân cứng đâu, bạn không cần tìm cho tốn công. Xử lý tiếng nói mà cần đến 5 bộ nhân cứng thì không rõ xử lý cả video lẫn audio sẽ cần bao nhiêu bộ nhân loại đó. Bạn xem thử các chip TMS320C64x của TI, tần số hàng GHz cũng chỉ có 2 bộ nhân cứng thôi, mà những chip này hiện nay là mạnh nhất của TI:

www.ti.com (vào trang này và chọn DSP từ mênu bên trái)

Microchip có nhiều ví dụ, thư viện về xử lý tiếng nói cho các chip dsPIC30F và dsPIC33F của họ, và tôi chưa thấy có con nào có nhiều hơn 1 bộ nhân cứng 17-bitx17-bit.

Thân,

hanspkt
02-01-2008, 08:46 PM
Em đang làm đề tài điều khiển robto bằng giọng nói, nhận dạng được 5 từ (do không đủ bộ nhớ). Anh NAMQN có giải thuật nhận dạng tiếng nói nào không cho em tham khảo với (do giải thuật của em đang làm chưa chính xác lắm). Nhân tiện cho em hỏi, hình như PIC18F... vẫn còn chậm hơn AVR rất nhiều có phải không?

namqn
03-01-2008, 12:26 AM
Em đang làm đề tài điều khiển robto bằng giọng nói, nhận dạng được 5 từ (do không đủ bộ nhớ). Anh NAMQN có giải thuật nhận dạng tiếng nói nào không cho em tham khảo với (do giải thuật của em đang làm chưa chính xác lắm). Nhân tiện cho em hỏi, hình như PIC18F... vẫn còn chậm hơn AVR rất nhiều có phải không?
Không rõ bạn đã thử tìm hiểu thư viện nhận dạng tiếng nói của Microchip chưa? Link của thư viện dưới đây.

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023596

PIC18F hiện nay có thể chạy đến 12 MIPS, và một số chip tương lai được mô tả với tốc độ đến 16 MIPS (PIC18FxxKxx). Hiệu quả của một chương trình còn phụ thuộc vào nhiều yếu tố, chứ không chỉ phụ thuộc vào chỉ số MIPS, do đó tôi cho rằng PIC18F hiện nay có thể thực hiện tác vụ tương đương với AVR.

Thân,