KỸ THUẬT OFDM 2.1 Giới thiệu chương
4.2 Cách sử dụng công cụ curve fitting
- Bước 1: Nhập dữ liệu cần tìm phương trình vào matlab. Dữ liệu có thể có dạng 3 chiều (x,y,z) ,ở đây ta chỉ xét dạng 2 chiều là x,y.
-Bước 2: Muốn tìm phương trình quan hệ giữa 2 biến x,y với x là đầu vào, y là đầu ra ta gõ lệnh : cftool(x,y). Ví dụ : x=[1:1:9] y=[ 1 4 9 16 25 36 50 64 80 ] cftool(x,y)
sẽ được giao diện sau :
Hình 4.1 Giao diện công cụ curve fitting
Như vậy dữ liệu đã được đưa vào trong curver fitting.
Hình 4.2 Các dạng phương trình matlab hỗ trợ trong curve fitting Bây giờ ta sẽ có các phương trình để lựa chọn là :
- Phương trình hàm mũ : từ bậc 1 đến bậc 9
- Phương trình dạng e mũ
- Phương trình hàm mũ
- Phương trình theo phép biến đổi Fourier
- Phương trình kiểu Gausian
- Phương trình theo tổng các hàm sin
- Phương trình theo Weibull
- Phương trình hàm mũ theo tỷ số
- Phương trình tự tạo theo ý muốn .
Đối với ví dụ này ta sẽ chọn phương trình hàm mũ. Chọn phương trình dạng
Hình 4.3 Đồ thị công cụ curve fitting tìm được Phương trình cần tìm là :
f(x) = a*x^b+c
Coefficients (with 95% confidence bounds): a = 1.111 (0.9227, 1.299) b = 1.951 (1.875, 2.026) c = -0.3489 (-1.342, 0.6442) Goodness of fit: SSE: 1.288 R-square: 0.9998 Adjusted R-square: 0.9997 RMSE: 0.4633
Với SSE là sum square error : tổng lỗi bình phương, RMSE là root mean sum error : căn bậc hai của trung bình bình phương sai số. Với dữ liệu đã cho ta cố tình tạo 2 lỗi tại 50, 80 với phương trình bình thường RMSE là 0.471, nhưng ở đây SSE là 0.4633 cho thấy curver filting sẽ làm mịn dữ liệu nhằm giảm bớt sai số. Muốn giảm RMSE ta có thể vào Fit option , chọn thêm các phương pháp lọc khác, ở đây ta đổi phương pháp lọc thành LAR thì được :
f(x) = a*x^b+c
Coefficients (with 95% confidence bounds): a = 1 (0.8789, 1.121)
b = 2 (1.946, 2.054) c = -3.528e-005 (-0.6867, 0.6866) Goodness of fit: SSE: 0.644 R-square: 0.9999 Adjusted R-square: 0.9999 RMSE: 0.3276
Kết quả cho thấy RMSE đã giảm xuống 0.3276.
Bây giờ ta thử chuyển sang tìm phương trình dạng đa thức (polynomial) : Chọn đa thức bậc 4 ta được :
f(x) = p1*x^4 + p2*x^3 + p3*x^2 + p4*x + p5 Coefficients (with 95% confidence bounds): p1 = -0.007284 (-0.01898, 0.004406) p2 = 0.123 (-0.1121, 0.358) p3 = 0.329 (-1.274, 1.931) p4 = 1.365 (-2.869, 5.6) p5 = -0.8333 (-4.293, 2.627) Goodness of fit: SSE: 0.4172 R-square: 0.9999 Adjusted R-square: 0.9999 RMSE: 0.323
Ta thấy RMSE đã giảm xuống 0.323 Thử chọn phương trình bậc 8 ta được : f(x) = p1*x^8 + p2*x^7 + p3*x^6 + p4*x^5 + p5*x^4 + p6*x^3 + p7*x^2 + p8*x + p Coefficients: p1 = 0.0006696 p2 = -0.0255 p3 = 0.4059
p4 = -3.514 p5 = 18 p6 = -55.48 p7 = 100.6 p8 = -93.98 p9 = 35 Goodness of fit: SSE: 3.294e-021 R-square: 1
Adjusted R-square: NaN RMSE: NaN
Ta thấy RMSE giảm rất nhiều và bây giờ nó rất nhỏ.
Ta còn có thể loại bỏ những điểm không mong muốn trong việc tìm phương trình bằng cách chọn Exclude trong cửa sổ curver fitting. Chọn giá trị muốn loại bỏ, đặt tên cho mảng mới và nhấn create.
Hình 4.4 Quá trình loại bỏ một số điểm không cần thiết trong curve fitting.
Công cụ curver fitting của matlab là một công cụ rất mạnh để giúp ta tìm được phương trình toán học cần tìm một cách chính xác nhất. Nhờ có công cụ này mà chúng ra sẽ tiết kiệm được rất nhiều thời gian trong các công viêc liên quan đến xử lý tín hiệu hay giải phương trình toán…….
CHƯƠNG 5